只要不嫌代码写的丑陋的,这样写很快:
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; } }