题解 | #简单密码#
简单密码
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); System.out.println(solution(in.nextLine())); } public static String solution(String info) { char[] chars = info.toCharArray(); for (int i = 0; i < chars.length; i++) { chars[i] = convert(chars[i]); } return String.valueOf(chars); } public static char convert(char c) { // abc--2, def--3, ghi--4, jkl--5, mno--6, pqr--7 if ('a' <= c && c <= 'r') { return (char) (((c - 'a') / 3) + '2'); } if ('A' <= c && c <= 'Z') { // 33 = ('a' - 'A') + 1 当 c == 'Z' 不再平行偏移 所以比较特殊 return c == 'Z' ? 'a' : (char) (c + 33); } return switch (c) { case 's' -> '7'; case 't', 'u', 'v' -> '8'; case 'w', 'x', 'y', 'z' -> '9'; default -> c; }; } }