标签:
(一)、字符串加密
设计思想:加密字符串时,将用户输入的字符串转换成字符数组,分别加三,最后将它们相加得到新的字符串,进行输出。解密亦然。
程序流程图:
源代码:
//余尉兴 字符串加密 20151020 import javax.swing.*; public class Secret { public static void main(String[] args){ String s=JOptionPane.showInputDialog("加密按1\n解密按2");//用户决定加密解密 if(s.equals("1")) { String s1=JOptionPane.showInputDialog("请输入需要加密的密码"); String s3=""; char[] s2=s1.toCharArray();//转换为字符数组 for(int i=0;i<s1.length();i++) { s2[i]=(char) (s2[i]+3);//依次加三 if(s2[i]>‘Z‘)//如果超过Z对应的数值则减去26 { s2[i]=(char) (s2[i]-26); } s3=s3+s2[i];//转换成字符串 } JOptionPane.showMessageDialog(null,s3); } else if(s.equals("2")) { String s1=JOptionPane.showInputDialog("请输入需要解密的密码"); String s3=""; char[] s2=s1.toCharArray();//转换为字符数组 for(int i=0;i<s1.length();i++) { s2[i]=(char) (s2[i]-3);//依次减三 if(s2[i]<‘A‘)//如果超过Z对应的数值则加上26 { s2[i]=(char) (s2[i]+26); } s3=s3+s2[i];//转换成字符串 } JOptionPane.showMessageDialog(null, s3); } } }
运行结果:
加密结果:
解密结果:
(二)、方法整理
equal()的源代码:
public boolean equals(Object anObject) { //如果是同一个对象 if (this == anObject) { return true; } //如果传递进来的参数是String类的实例 if (anObject instanceof String) { String anotherString = (String)anObject; int n = 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; } return true; } } return false; }
length():
public int length()
CharSequence
中的 length
charAt():
public char charAt(int index)
char
值。索引范围为从 0
到 length() - 1
。序列的第一个 char
值位于索引 0
处,第二个位于索引 1
处,依此类推,这类似于数组索引。
如果索引指定的 char
值是代理项,则返回代理项值。
CharSequence
中的 charAt
index
- char
值的索引。char
值。第一个 char
值位于索引 0
处。IndexOutOfBoundsException
- 如果 index
参数为负或小于此字符串的长度getChars():
public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
要复制的第一个字符位于索引 srcBegin
处;要复制的最后一个字符位于索引 srcEnd-1
处(因此要复制的字符总数是 srcEnd-srcBegin
)。要复制到 dst
子数组的字符从索引 dstBegin
处开始,并结束于索引:
dstbegin + (srcEnd-srcBegin) - 1
srcBegin
- 字符串中要复制的第一个字符的索引。srcEnd
- 字符串中要复制的最后一个字符之后的索引。dst
- 目标数组。dstBegin
- 目标数组中的起始偏移量。IndexOutOfBoundsException
- 如果下列任何一项为 true:
srcBegin
为负。srcBegin
大于 srcEnd
srcEnd
大于此字符串的长度dstBegin
为负dstBegin+(srcEnd-srcBegin)
大于 dst.length
replace():
public String replace(char oldChar, char newChar)
newChar
替换此字符串中出现的所有 oldChar
得到的。
如果 oldChar
在此 String
对象表示的字符序列中没有出现,则返回对此 String
对象的引用。否则,创建一个新的 String
对象,它所表示的字符序列除了所有的 oldChar
都被替换为 newChar
之外,与此 String
对象表示的字符序列相同。
示例:
"mesquite in your cellar".replace(‘e‘, ‘o‘) returns "mosquito in your collar" "the war of baronets".replace(‘r‘, ‘y‘) returns "the way of bayonets" "sparring with a purple porpoise".replace(‘p‘, ‘t‘) returns "starring with a turtle tortoise" "JonL".replace(‘q‘, ‘x‘) returns "JonL" (no change)
oldChar
- 原字符。newChar
- 新字符。oldChar
替代为 newChar
。toUpperCase():、
public String toUpperCase()
String
中的所有字符都转换为大写。此方法等效于 toUpperCase(Locale.getDefault())
。
注: 此方法与语言环境有关,如果用于应独立于语言环境解释的字符串,则可能生成不可预料的结果。示例有编程语言标识符、协议键、HTML 标记。例如,"title".toUpperCase()
在 Turkish(土耳其语)语言环境中返回 "T?TLE"
,其中“?”是 LATIN CAPITAL LETTER I WITH DOT ABOVE 字符。对于与语言环境有关的字符,要获得正确的结果,请使用 toUpperCase(Locale.ENGLISH)
。
String
。toUpperCase(Locale)
toLowerCase():
public String toLowerCase()
String
中的所有字符都转换为小写。这等效于调用 toLowerCase(Locale.getDefault())
。
注: 此方法与语言环境有关,如果用于应独立于语言环境解释的字符串,则可能生成不可预料的结果。示例有编程语言标识符、协议键、HTML 标记。例如,"TITLE".toLowerCase()
在 Turkish(土耳其语)语言环境中返回 "t?tle"
,其中“?”是 LATIN SMALL LETTER DOTLESS I 字符。对于与语言环境有关的字符,要获得正确的结果,请使用 toLowerCase(Locale.ENGLISH)
。
String
。toLowerCase(Locale)
trim()
public String trim()
如果此 String
对象表示一个空字符序列,或者此 String
对象表示的字符序列的第一个和最后一个字符的代码都大于 ‘\u0020‘
(空格字符),则返回对此 String
对象的引用。
否则,若字符串中没有代码大于 ‘\u0020‘
的字符,则创建并返回一个表示空字符串的新 String
对象。
否则,假定 k 为字符串中代码大于 ‘\u0020‘
的第一个字符的索引,m 为字符串中代码大于 ‘\u0020‘
的最后一个字符的索引。创建一个新的 String
对象,它表示此字符串中从索引 k 处的字符开始,到索引 m 处的字符结束的子字符串,即 this.substring(k, m+1)
的结果。
此方法可用于截去字符串开头和末尾的空白(如上所述)。
toCharArray():
public char[] toCharArray()
标签:
原文地址:http://www.cnblogs.com/a1264393659/p/4906504.html