字符串加密解密:html
源代码:java
package tutorial04String; import javax.swing.JOptionPane; public class Wordsecret { public static void main(String args[]){ String q =JOptionPane.showInputDialog("请选择加密1,解密2");//对话框形式选择功能 int m= Integer.parseInt(q); if(m==1)//加密 { String s =JOptionPane.showInputDialog( "请输入一串字符:" ); int i,len; len = s.length(); String output = ""; for(i =0;i<len;i++) { char c=s.charAt(i);//核心算法,加密分状况。当取出的字符在w以后,返回到字母表前面 if(c<'x'&&c>='a') c= (char)(c+3); else if(c>'w'&&c<='z') {c=(char)(c-26+3); } else if(c<'X'&&c>='A') c= (char)(c+3); else { c=(char)(c-26+3); } output+=c; } System.out.println(output); } else//解密 { String s =JOptionPane.showInputDialog( "请输入一串字符:" ); int i,len; len = s.length(); String output = ""; for(i =0;i<len;i++) { char c=s.charAt(i); if(c<'d'&&c>='a') { c= (char)(c-3+26);//解密算法,当字符取出为d以前的数,调到字母表后面 } else if(c>='d'&&c<='z') c=(char)(c-3); else if(c<'D'&&c>='A') c= (char)(c-3+26); else { c=(char)(c-3); } output+=c; } System.out.println(output); } } }
运行截图:算法
public boolean equals(Object anObject)编程
将此字符串与指定的对象比较。当且仅当该参数不为 null,而且是与此对象表示相同字符序列的 String 对象时,结果才为 true。数组
覆盖:编程语言
参数:this
anObject - 与此 String 进行比较的对象。加密
返回:spa
若是给定对象表示的 String 与此 String 相等,则返回 true;不然返回 false。
public int length()
返回此字符串的长度。长度等于字符串中 Unicode 代码单元的数量。
指定者:
接口 CharSequence 中的 length
返回:
此对象表示的字符序列的长度。
public char charAt(int index)
返回指定索引处的 char 值。索引范围为从 0 到 length() - 1。序列的第一个 char 值位于索引 0 处,第二个位于索引 1 处,依此类推,这相似于数组索引。
若是索引指定的 char 值是代理项,则返回代理项值。
指定者:
接口 CharSequence 中的 charAt
参数:
index - char 值的索引。
返回:
此字符串指定索引处的 char 值。第一个 char 值位于索引 0 处。
抛出:
IndexOutOfBoundsException - 若是 index 参数为负或小于此字符串的长度。
public void getChars(int srcBegin,
int srcEnd,
char[] dst,
int dstBegin)
将字符今后序列复制到目标字符数组 dst。要复制的第一个字符在索引 srcBegin 处;要复制的最后一个字符在索引 srcEnd-1 处。要复制的字符总数为 srcEnd-srcBegin。要复制到 dst 子数组的字符从索引 dstBegin 处开始,结束于如下索引:
dstbegin + (srcEnd-srcBegin) - 1
参数:
srcBegin - 今后偏移量处开始复制。
srcEnd - 在此偏移量处中止复制。
dst - 用来保存复制数据的数组。
dstBegin - dst 中的偏移量。
抛出:
NullPointerException - 若是 dst 为 null。
IndexOutOfBoundsException - 若是如下任意一项为 true:
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。
replace
public String replace(CharSequence target,
CharSequence replacement)
使用指定的字面值替换序列替换此字符串全部匹配字面值目标序列的子字符串。该替换从字符串的开头朝末尾执行,例如,用 "b" 替换字符串 "aaa" 中的 "aa" 将生成 "ba" 而不是 "ab"。
参数:
target - 要被替换的 char 值序列
replacement - char 值的替换序列
返回:
所得 String
抛出:
NullPointerException - 若是 target 或 replacement 为 null。
public String toUpperCase()
使用默认语言环境的规则将此 String 中的全部字符都转换为大写。此方法等效于 toUpperCase(Locale.getDefault())。
注: 此方法与语言环境有关,若是用于应独立于语言环境解释的字符串,则可能生成不可预料的结果。示例有编程语言标识符、协议键、HTML 标记。例如,"title".toUpperCase() 在 Turkish(土耳其语)语言环境中返回 "T?TLE",其中“?”是 LATIN CAPITAL LETTER I WITH DOT ABOVE 字符。对于与语言环境有关的字符,要得到正确的结果,请使用 toUpperCase(Locale.ENGLISH)。
返回:
要转换为大写的 String
public String toLowerCase()
使用默认语言环境的规则将此 String 中的全部字符都转换为小写。这等效于调用 toLowerCase(Locale.getDefault())。
注: 此方法与语言环境有关,若是用于应独立于语言环境解释的字符串,则可能生成不可预料的结果。示例有编程语言标识符、协议键、HTML 标记。例如,"TITLE".toLowerCase() 在 Turkish(土耳其语)语言环境中返回 "t?tle",其中“?”是 LATIN SMALL LETTER DOTLESS I 字符。对于与语言环境有关的字符,要得到正确的结果,请使用 toLowerCase(Locale.ENGLISH)。
返回:
要转换为小写的 String。
public String trim()
返回字符串的副本,忽略前导空白和尾部空白。
若是此 String 对象表示一个空字符序列,或者此 String 对象表示的字符序列的第一个和最后一个字符的代码都大于 '\u0020'(空格字符),则返回对此 String 对象的引用。
不然,若字符串中没有代码大于 '\u0020' 的字符,则建立并返回一个表示空字符串的新 String 对象。
不然,假定 k 为字符串中代码大于 '\u0020' 的第一个字符的索引,m 为字符串中代码大于 '\u0020' 的最后一个字符的索引。建立一个新的 String 对象,它表示此字符串中从索引 k 处的字符开始,到索引 m 处的字符结束的子字符串,即 this.substring(k, m+1) 的结果。
此方法可用于截去字符串开头和末尾的空白(如上所述)。
返回:
此字符串移除了前导和尾部空白的副本;若是没有前导和尾部空白,则返回此字符串。
public char[] toCharArray()
将此字符串转换为一个新的字符数组。
返回:
一个新分配的字符数组,它的长度是此字符串的长度,它的内容被初始化为包含此字符串表示的字符序列。