题解 | 字符串加解密
字符串加解密
https://www.nowcoder.com/practice/2aa32b378a024755a3f251e75cbf233a
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextLine()) { // 注意 while 处理多个 case
String str1 = in.nextLine();
String str2 = in.nextLine();
System.out.println(f1(str1));
System.out.println(f2(str2));
}
}
static String f1(String str) {//加密
StringBuffer res=new StringBuffer();
for (char c : str.toCharArray()) {
if (Character.isDigit(c)) {//数字加密
res.append((char)(((c - '0') + 1) % 10 + '0'));
} else if (Character.isLowerCase(c)) {//小写字母加密
res.append((char)(((c - 'a') + 1) % 26 + 'A'));
} else if (Character.isUpperCase(c)) {//大写字母加密
res.append((char)(((c - 'A') + 1) % 26 + 'a'));
}else{
res.append(c);
}
}
return res.toString();
}
static String f2(String str) {//解密
StringBuffer res=new StringBuffer();
for (char c : str.toCharArray()) {
if (Character.isDigit(c)) {
res.append((char)(((c - '0') - 1+10) % 10 + '0'));
} else if (Character.isLowerCase(c)) {
res.append((char)(((c - 'a') - 1+26) % 26 + 'A'));
} else if (Character.isUpperCase(c)) {
res.append((char)(((c - 'A') - 1+26) % 26 + 'a'));
}else{
res.append(c);
}
}
return res.toString();
}
}
查看10道真题和解析