第一题
字符串加密问题
1.程序设计思想
读入字符串,然后获取其长度,利用charAt()获取每个位置字符并且对字符加3实现加密处理,并存入新字符串中。如果遇到xyz则减26存入。
2.程序流程图
3.程序源代码
import java.util.Scanner; import java.util.Random; public class StringJiami { public static void main(String[] args) { // TODO Auto-generated method stub Str s=new Str(); Scanner input=new Scanner(System.in); System.out.print("1 字符串加密 2 字符串解密 请选择:"); int choose=input.nextInt(); if(choose==1) { String str; System.out.print("请输入要加密的字符串:"); input.nextLine(); str=input.nextLine(); //输入字符串 s.setStr(str); System.out.println("加密后为:"+s.jiami()); } if(choose==2) { System.out.print("请输入要解密的字符串:"); input.nextLine(); String str=input.nextLine(); //输入字符串 s.setStr(str); System.out.println("解密后为:"+s.jiemi()); } } } class Str{ private String str; public void setStr(String a){ this.str=a; } public String jiemi(){ int l=str.length(); //计算字符串长度 String newstr=""; //设置空字符串保存解密后内容 char c; for(int i=0;i<l;i++){ c=str.charAt(i); //提起第i个字符 if((c>='a'&&c<='c')||(c>='A'&&c<='C')) c=(char)(c+26); //解密处理 if(c==' ') c=c; else c=(char)(c-3); newstr+=c; } return newstr; //返回解密后字符串 } public String jiami(){ int l=str.length(); //计算字符串长度 String newstr=""; //设置空字符串保存解密后内容 char c; for(int i=0;i<l;i++){ c=str.charAt(i); //提起第i个字符 if((c>='x'&&c<='z')||(c>='X'&&c<='Z')) c=(char)(c-26); //解密处理 if(c==' ') c=c; else c=(char)(c+3); newstr+=c; } return newstr; //返回解密后字符串 } }
4验证结果截图
第二题
总结String类的一些方法的使用说明
Equals的实现方法
String anotherString = (String)anObject;
字符串是一个引用数据类型,本身是String个对象,
在这里把传进来的anObject这个对象,赋给anotherString (需要类型转换)
他当然可以调用String类里的成员,你说的count、value、offset都是String的成搜索员
int n = count;//这个count是原始字符串的长度
if (n == anotherString.count) { //把字符串长度和要比较的字符串长度对比,长度都不同的话就不用比字符串内容了
char v1[] = value;//把原始字符串义字符形式存入数组
char v2[] = anotherString.value; //把要比较字符串义字符形式存入数组
int i = offset;//数组下标
int j = anotherString.offset; //????
while (n-- != 0) { //遍历数组,比较 数组元素是否相同
if (v1[i++] != v2[j++])
return false;//在遍历的过程中如果有不同的就返回false;
} //你如果用过equals这个方法应该知道它返回的是boolean值
return true;
}
}
return false;
}
(1)Length():是表示字符串长度的一个属性。可以用来统计字符串的长度也可以设置返回数组元素的个数。
(2)charAt():方法返回指定索引处的char值。索引范围是从0到length() - 1。对于数组索引,序列的第一个char值是在索引为0,索引1,依此类推.
(3)void getChars(int srcBegin, int srcEnd,char[] dst, int dstbegin):该方法将目标字符拷贝到字符串中其中,srcBegin为拷贝的起始位置,srcEnd为拷贝的结束位置,字符串数值dst为目标字符数组,dstBegin为目标字符数组的拷贝起始位置
(4)replace():String replace(char oldChar,char newChar);//将字符串中第一个oldChar替换为newChar;
(5)toUpperCase()将字符转换为大写
(6)toLowerCase()将字符转换为小写
(7)Trim()删除字符串开始和结束部分的空格,然后返回删除后的结果。不删除字符串中间的空格
(8)toCharArray()将String类型转化为字符数组型