题解 | #字符串加解密#
字符串加解密
https://www.nowcoder.com/practice/2aa32b378a024755a3f251e75cbf233a
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//获取输入值
Scanner in = new Scanner(System.in);
String s1 = in.nextLine();//需要加密的字符串
String s2 = in.nextLine();//需要解密的字符串
//加密
String jiami = jiami(s1);
//解密
String jiemi = jiemi(s2);
//输出结果
System.out.println(jiami);
System.out.println(jiemi);
}
private static String jiami(String s1) {
StringBuffer stringBuffer = new StringBuffer();
for (int i = 0; i < s1.length(); i++) {
int cInt = s1.charAt(i);
if ((cInt >= (int) 'A' && cInt <= (int) 'Y')) {
stringBuffer.append(String.valueOf((char) ++cInt).toLowerCase());
} else if ((cInt >= (int) 'a' && cInt <= (int) 'y')) {
stringBuffer.append(String.valueOf((char) ++cInt).toUpperCase());
} else if (cInt == (int) 'Z') {
stringBuffer.append("a");
} else if (cInt == (int) 'z') {
stringBuffer.append("A");
} else if (cInt >= (int) '0' && cInt <= (int) '8') {
stringBuffer.append((char) ++cInt);
} else if (cInt == (int) '9') {
stringBuffer.append("0");
}
}
return stringBuffer.toString();
}
private static String jiemi(String s1) {
StringBuffer stringBuffer = new StringBuffer();
for (int i = 0; i < s1.length(); i++) {
int cInt = s1.charAt(i);
if ((cInt >= (int) 'B' && cInt <= (int) 'Z')) {
stringBuffer.append(String.valueOf((char) --cInt).toLowerCase());
} else if ((cInt >= (int) 'b' && cInt <= (int) 'z')) {
stringBuffer.append(String.valueOf((char) --cInt).toUpperCase());
} else if (cInt == (int) 'A') {
stringBuffer.append("z");
} else if (cInt == (int) 'a') {
stringBuffer.append("Z");
} else if (cInt >= (int) '1' && cInt <= (int) '9') {
stringBuffer.append((char) --cInt);
} else if (cInt == (int) '0') {
stringBuffer.append("9");
}
}
return stringBuffer.toString();
}
}
解题思路:
1, 按照字符串和ASC2码表之间的关系, 进行字符串判断和替换即可;
2, 注意加密和解密为相反操作
文远知行公司福利 583人发布