只要不嫌代码写的丑陋的,这样写很快:
package huawei;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
map.put("a", 2);
map.put("b", 2);
map.put("c", 2);
map.put("d", 3);
map.put("e", 3);
map.put("f", 3);
map.put("g", 4);
map.put("h", 4);
map.put("i", 4);
map.put("j", 5);
map.put("k", 5);
map.put("l", 5);
map.put("m", 6);
map.put("n", 6);
map.put("o", 6);
map.put("p", 7);
map.put("q", 7);
map.put("r", 7);
map.put("s", 7);
map.put("t", 8);
map.put("u", 8);
map.put("v", 8);
map.put("w", 9);
map.put("x", 9);
map.put("y", 9);
map.put("z", 9);
Map<String, String> map1 = new HashMap<>();
map1.put("A", "b");
map1.put("B", "c");
map1.put("C", "d");
map1.put("D", "e");
map1.put("E", "f");
map1.put("F", "g");
map1.put("G", "h");
map1.put("H", "i");
map1.put("I", "j");
map1.put("J", "k");
map1.put("K", "l");
map1.put("L", "m");
map1.put("M", "n");
map1.put("N", "o");
map1.put("O", "p");
map1.put("P", "q");
map1.put("Q", "r");
map1.put("R", "s");
map1.put("S", "t");
map1.put("T", "u");
map1.put("U", "v");
map1.put("V", "w");
map1.put("W", "x");
map1.put("X", "y");
map1.put("Y", "z");
map1.put("Z", "a");
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
String a = in.next();
char[] chars = a.toCharArray();
StringBuilder stringBuilder = new StringBuilder();
for (char aChar : chars) {
if (checkIfLowerCase(aChar)) {
stringBuilder.append(map.get(String.valueOf(aChar)));
} else if (checkIfUpperCase(aChar)) {
stringBuilder.append(map1.get(String.valueOf(aChar)));
} else {
stringBuilder.append(aChar);
}
}
System.out.println(stringBuilder);
}
}
private static boolean checkIfUpperCase(char s) {
return s >= 65 && s <=90;
}
private static boolean checkIfLowerCase(char s) {
return s >=97 && s <=122;
}
}

京公网安备 11010502036488号