题解 | 简单密码
简单密码
https://www.nowcoder.com/practice/7960b5038a2142a18e27e4c733855dac
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.hasNext()) { // 注意 while 处理多个 case
String pwd = in.nextLine().trim();
if ("exit".equalsIgnoreCase(pwd)) {
break;
} else if (pwd.isEmpty()) {
continue;
} else {
System.out.println(converPwd(pwd));
}
}
}
private static final char[] chars = "22233344455566677778889999".toCharArray();
//密码转换
private static String converPwd(String pwd) {
StringBuilder sb = new StringBuilder(pwd.length());
for (int i = 0; i < pwd.length(); i++) {
char c = pwd.charAt(i);
//小写直接转为数字
if (Character.isLowerCase(c)) {
sb.append(chars[c - 'a']);
} else if (Character.isUpperCase(c)) { //大写先转小写,再转数字
c = Character.toLowerCase(c);
if (c == 'z') {
c = 'a';
} else {
c++;
}
sb.append(c);
} else {
sb.append(c);
}
}
return sb.toString();
}
}
查看4道真题和解析