一、课后作业一

1.设计思想:根据题意,首先提示输入要进行的操作:解密或加密,然后输入一个字符串,利用charAt()方法将改变的字母连接到结果上,加密:将前23个大小写字母+3,后3个-23强制转化为char;解密:后23个大小写字母-3,前3个+23。再根据结果进行改变,添加提示。
2.程序流程图:

3.源代码:
package T4;
//胡建峰,2016.10.25
//字串加密
import java.util.Scanner;
public class Test {
public static void main( String args[] ){
Scanner N = new Scanner(System.in);//输入
System.out.print("请输入要执行操作(1.加密,2解密):");
int choose = N.nextInt();
String result="";
char temp;
if(choose == 1)//加密
{
System.out.print("请输入字符串:");
String wen = N.next();
for(int i = 0;i < wen.length();i++)
{
if((wen.charAt(i) > 64 && wen.charAt(i) < 88)||(wen.charAt(i) > 96 && wen.charAt(i) < 120))
temp=(char) (wen.charAt(i) + 3);
else if((wen.charAt(i) > 87 && wen.charAt(i) < 91)||(wen.charAt(i) > 119 && wen.charAt(i) < 123))
temp=(char) (wen.charAt(i) - 23);
else
{
System.out.println("中间输入有误!");
break;
}
result += temp;
}
System.out.println("加密后结果为:" + result);
}
else if(choose == 2)//解密
{
System.out.print("请输入字符串:");
String wen = N.next();
for(int i = 0;i < wen.length();i++)
{
if((wen.charAt(i) > 67 && wen.charAt(i) < 91)||(wen.charAt(i) > 99 && wen.charAt(i) < 123))
temp=(char) (wen.charAt(i) - 3);
else if((wen.charAt(i) > 64 && wen.charAt(i) < 68)||(wen.charAt(i) > 96 && wen.charAt(i) < 100))
temp=(char) (wen.charAt(i) + 23);
else
{
System.out.println("中间输入有误!");
break;
}
result += temp;
}
System.out.println("解密后结果为:" + result);
}
else
System.out.println("输入有误!");
N.close();
}
}
4.结果截图:




二、动手动脑:请查看String.equals()方法的实现代码,注意学习其实现方法。
equals()方法的一个重载:
public boolean equals(MyTestClass obj)
{
return obj.Value==this.Value;
}
方法实现代码:
public class StringEquals {
public static void main(String[] args) {
String s1=new String("Hello");
String s2=new String("Hello");
System.out.println(s1==s2);
System.out.println(s1.equals(s2));
String s3="Hello";
String s4="Hello";
System.out.println(s3==s4);
System.out.println(s3.equals(s4));
}
}

String1.equals(String2)判断的是String1和String2的值是否相同,s1、s2是新建位置不同,s3,s4建立时由于值相同所以指的是同一位置。
三、整理String类的Length()、charAt()、 getChars()、replace()、 toUpperCase()、 toLowerCase()、trim()、toCharArray()使用说明
int length() :返回当前字符串长度。
char charAt(int index):取字符串中的某一个字符,其中的参数index指的是字符串中序数。字符串的序数从0开始到length()-1 。
例如:
String s = new String("abcdefghijklmnopqrstuvwxyz");
System.out.println("s.charAt(5): " + s.charAt(5) );
结果为:s.charAt(5): f
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin):该方法将字符串拷贝到字符数组中。其中,srcBegin为拷贝的起始位置、srcEnd为拷贝的结束位置、字符串数值dst为目标字符数组、dstBegin为目标字符数组的拷贝起始位置。
例如:
char[] s1 = {'I',' ','l','o','v','e',' ','h','e','r','!'};//s1=I love her!
String s2 = new String("you!"); s2.getChars(0,3,s1,7); //s1=I love you!
System.out.println( s1 );
结果为:I love you!
public String replace(char oldChar, char newChar)返回一个新的字符串
String toLowerCase():将字符串转换成小写。
String toUpperCase():将字符串转换成大写。
例如:
String s = new String("java.lang.Class String");
System.out.println("s.toUpperCase(): " + s.toUpperCase() );
System.out.println("s.toLowerCase(): " + s.toLowerCase() );
结果为:
s.toUpperCase(): JAVA.LANG.CLASS STRING
s.toLowerCase(): java.lang.class string
trim():返回该字符串去掉开头和结尾空格后的字符串
char[ ] toCharArray() :将该String对象转换成char数组。
来源:http://www.cnblogs.com/fylove/p/5998545.html