发布网友
共3个回答
热心网友
【可加密,也可解密(-key)】
public class Wangyf {
public static void main(String[] args) {
String str = "i am student zzzZZZ";
//加密
String str2 = getString( str, 1 );
System.out.println(str2);
//解密 用 -KEY
System.out.println(getString( str2, -1));
}
private static final char C1 = 'a';
private static final char C2 = 'z';
private static final char C3 = 'A';
private static final char C4 = 'Z';
public static String getString(String str, int key) {
key %= 26;
if(key == 0 ){
return str;
}
char[] chars = str.toCharArray();
for(int i = chars.length - 1 ; i >= 0 ; i --){
if(chars[i] >= C3 && chars[i] <= C4){
chars[i] += key;
if(chars[i] > C4){
chars[i] = (char) ( chars[i] -C4 + C3 - 1);
}else if(chars[i] < C3){
chars[i] = (char) (C4 - (C3 -chars[i]) + 1);
}
} else if(chars[i] >= C1 && chars[i] <= C2){
chars[i] += key;
if(chars[i] > C2){
chars[i] = (char) ( chars[i] - C2 + C1 - 1);
}else if(chars[i] < C1){
chars[i] = (char) (C2 - (C1 - chars[i]) + 1);
}
}
}
return new String( chars );
}
}
【测试结果】
j bn tuvefou aaaAAA
i am student zzzZZZ
热心网友
public String(char[] value)
分配一个新的 String,使其表示字符数组参数中当前包含的字符序列。该字符数组的内容已被复制;后续对字符数组的修改不会影响新创建的字符串。
toCharArray
public char[] toCharArray()
将此字符串转换为一个新的字符数组。
热心网友
先记下,过几天来解~