题解 | #字符串加解密#
字符串加解密
https://www.nowcoder.com/practice/2aa32b378a024755a3f251e75cbf233a
String相等用 equals()
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String str1 = in.nextLine();
String str2 = in.nextLine();
StringBuffer sb1 = new StringBuffer();
StringBuffer sb2 = new StringBuffer();
String regexUpperCase = "[A-Z]";
String regexLowerCase = "[a-z]";
String regexNum = "[0-9]";
//加密
for (int i = 0; i < str1.length(); i++) {
String str = str1.substring(i, i + 1);
//大写变换小写
if (str.matches(regexUpperCase)) {
if ("Z".equals(str)) {
sb1.append("a");
} else {
char ch = (char)((str.toLowerCase().charAt(0)) + 1);
sb1.append(ch + "");
}
}
//小写变化大写
else if (str.matches(regexLowerCase)) {
if ("z".equals(str)) {
sb1.append("A");
} else {
char ch = (char)(str.charAt(0) + 1);
sb1.append((ch + "").toUpperCase());
}
//数字
} else if (str.matches(regexNum)) {
if ("9".equals(str)) {
sb1.append("0");
} else {
char ch = (char)(str.charAt(0) + 1);
sb1.append(ch + "");
}
} else {
sb1.append(str);
}
}
//解密
for (int i = 0; i < str2.length(); i++) {
String str = str2.substring(i, i + 1);
//大写变换小写
if (str.matches(regexUpperCase)) {
if ("A".equals(str)) {
sb2.append("z");
} else {
char ch = (char)((str.toLowerCase().charAt(0)) - 1);
sb2.append(ch + "");
}
}
//小写变化大写
else if (str.matches(regexLowerCase)) {
if ("a".equals(str)) {
sb2.append("Z");
} else {
char ch = (char)(str.charAt(0) - 1);
sb2.append((ch + "").toUpperCase());
}
//数字
} else if (str.matches(regexNum)) {
if ("0".equals(str)) {
sb2.append("9");
} else {
char ch = (char)(str.charAt(0) - 1);
sb2.append(ch + "");
}
} else {
sb2.append(str);
}
}
System.out.println(sb1);
System.out.println(sb2);
}
}

查看4道真题和解析