题解 | #简单密码#
简单密码
https://www.nowcoder.com/practice/7960b5038a2142a18e27e4c733855dac
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextLine()) { // 注意 while 处理多个 case
String a = in.nextLine();
//小写字母转换
a = changeLower(a);
//大写字母转换
a = changeUpper(a);
System.out.println(a);
}
}
private static String changeUpper(String s) {
s = s.replaceAll("[Z]", "a");
String a = s;
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
String s1 = String.valueOf(c);
if (s1.matches("[A-Y]")) {
c++;
a = a.replace(s1, String.valueOf(c).toLowerCase());
}
}
return a;
}
private static String changeLower(String s) {
//1--1, abc--2, def--3, ghi--4, jkl--5, mno--6, pqrs--7, tuv--8 wxyz--9, 0--0
s = s.replaceAll("[a-c]", "2");
s = s.replaceAll("[d-f]", "3");
s = s.replaceAll("[g-i]", "4");
s = s.replaceAll("[j-l]", "5");
s = s.replaceAll("[m-o]", "6");
s = s.replaceAll("[p-s]", "7");
s = s.replaceAll("[t-v]", "8");
s = s.replaceAll("[w-z]", "9");
return s;
}
}
解题思路:
1, 按照题意, 分两步对字符串进行转化;
2, 首先将小写字母转换为对应字符串;
3, 再将大写字母进行转换;
4, 最终进行输出
查看12道真题和解析