课后作业---字符串

一、课后作业一

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数组。

posted @ 2016-10-25 22:22  丶枫  阅读(189)  评论(0编辑  收藏  举报