只要不嫌代码写的丑陋的,这样写很快:

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;
    }
}