标签:技术分享 cin image logs 字符数组 ase pre public print
课后作业1:字串加密
设计思想:根据题目的要求,我发现每个字母其实后移了三位,比如A对应D,因此,在程序中,可以把输入的字符串的每个字符后裔三位,这是加密的字符,解密的字符反一下就行。
程序流程图:
源代码:
import java.util.Scanner;
public class Password {
public void jiemi()
{
String input,output;
Scanner cin=new Scanner(System.in);
System.out.println("输入需要解密的字符串:");
input=cin.next();
for(int i=0;i<input.length();i++)
{
char a[]=new char[input.length()];
a[i]=input.charAt(i);
char b[]=new char[input.length()];
if(a[i]!=‘X‘&&a[i]!=‘Y‘&&a[i]!=‘Z‘)
b[i]=(char) (a[i]+3);
else
b[i]=(char) (a[i]-23);
System.out.print(b[i]);
}
}
public void jiami()
{
String input,output;
Scanner cin=new Scanner(System.in);
System.out.println("输入需要加密的字符串:");
input=cin.next();
for(int i=0;i<input.length();i++)
{
char a[]=new char[input.length()];
a[i]=input.charAt(i);
char b[]=new char[input.length()];
if(a[i]!=‘A‘&&a[i]!=‘B‘&&a[i]!=‘C‘)
b[i]=(char) (a[i]-3);
else
b[i]=(char) (a[i]+23);
System.out.print(b[i]);
}
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
System.out.println("1.加密");
System.out.println("2.解密");
System.out.println("选择功能:");
int n;
Scanner cin=new Scanner(System.in);
n=cin.nextInt();
Password p=new Password();
switch(n)
{
case 1 : {p.jiami();break;}
case 2 : {p.jiemi();break;}
}
}
}
结果截图:
String.equals()方法的实现代码:
public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { String anotherString = (String) anObject; int n = value.length; if (n == anotherString.value.length) { char v1[] = value; char v2[] = anotherString.value; int i = 0; while (n-- != 0) { if (v1[i] != v2[i]) return false; i++; } return true; } } return false; }
(1)String类中的equals首先比较地址,如果是同一个对象的引用,可知对象相等,返回true。
(2)若果不是同一个对象,equals方法挨个比较两个字符串对象内的字符,只有完全相等才返回true,否则返回false。
String类的Length():
public int length()//返回该字符串的长度
String str = new String("asdfzxc"); int strlength = str.length();//strlength = 7
charAt():
public char charAt(int index)//返回字符串中指定位置的字符;注意字符串中第一个字符索引是0,最后一个是length()-1。
1 String str = new String("asdfzxc");
2 char ch = str.charAt(4);//ch = z
getChars():
public void getChars(int start,int end,char c[],int offset)
该方法的作用是将当前字符串从start到end-1位置上的字符复制到字符数组c中,并从c的offset处开始存放
replace():
public String replace(char oldChar, char newChar)//用字符newChar替换当前字符串中所有的oldChar字符,并返回一个新的字符串
toUpperCase():
public String toUpperCase()//返回将当前字符串中所有字符转换成大写后的新串
toLowerCase():
public String toLowerCase()//返回将当前字符串中所有字符转换成小写后的新串
trim():
tring trim()//截去字符串两端的空格,但对于中间的空格不处理。
1 String str = " a sd "; 2 String str1 = str.trim(); 3 int a = str.length();//a = 6 4 int b = str1.length();//b = 4
toCharArray():
将字符串对象中的字符转换为一个字符数组
例如:
String myString="abcd";
char myChar[]=myString.toCharArray();
System.out.println("myChar[1]="+myChar[1]);
输出结果:
myChar[1]=b
标签:技术分享 cin image logs 字符数组 ase pre public print
原文地址:http://www.cnblogs.com/andibier/p/7739653.html