题解 | #字符串加解密#
字符串加解密
https://www.nowcoder.com/practice/2aa32b378a024755a3f251e75cbf233a
import java.util.*;
/**
* 加密方法为:
* 当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a;
* 当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0;
* 其他字符不做变化。
* 解密方法为加密的逆过程。
*/
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextLine()) {
String str = in.nextLine(); // 要加密的串
String str2 = in.nextLine(); // 要解密的串
final char[] chars = str.toCharArray();
final char[] chars2 = str2.toCharArray();
StringBuilder sb = new StringBuilder(); // 加密后的串
StringBuilder sb2 = new StringBuilder(); // 解密后的串
for (char ch : chars) {
if (ch >= 'a' && ch <= 'z') {
sb.append(Character.toUpperCase(ch == 'z' ? 'a' : (char)(ch + 1)));
} else if (ch >= 'A' && ch <= 'Z') {
sb.append(Character.toLowerCase(ch == 'Z' ? 'A' : (char)(ch + 1)));
} else if (ch >= '0' && ch <= '9') {
sb.append(ch == '9' ? "0" : Integer.parseInt(ch + "") + 1);
}
}
for (char ch : chars2) {
if (ch >= 'a' && ch <= 'z') {
sb2.append(Character.toUpperCase(ch == 'a' ? 'z' : (char)(ch - 1)));
} else if (ch >= 'A' && ch <= 'Z') {
sb2.append(Character.toLowerCase(ch == 'A' ? 'Z' : (char)(ch - 1)));
} else if (ch >= '0' && ch <= '9') {
sb2.append(ch == '0' ? "9" : Integer.parseInt(ch + "") - 1);
}
}
System.out.println(sb.toString());
System.out.println(sb2.toString());
}
}
}

途虎成长空间 159人发布