描述
现在有一种密码变换算法。
九键手机键盘上的数字与字母的对应: 1--1, abc--2, def--3, ghi--4, jkl--5, mno--6, pqrs--7, tuv--8 wxyz--9, 0--0,把密码中出现的小写字母都变成九键键盘对应的数字,如:a 变成 2,x 变成 9.
而密码中出现的大写字母则变成小写之后往后移一位,如:X ,先变成小写,再往后移一位,变成了 y ,例外:Z 往后移是 a 。
数字和其它的符号都不做变换。
数据范围: 输入的字符串长度满足 1 \le n \le 100 \1≤n≤100
输入描述:
输入一组密码,长度不超过100个字符。
输出描述:
输出密码变换后的字符串
示例1
输入:
YUANzhi1987复制输出:
zvbo9441987复制
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
String str = scanner.next();
String newStr = convert(str);
System.out.println(newStr);
}
}
public static String convert(String str) {
StringBuffer sb = new StringBuffer("");
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c == 'a' || c == 'b' || c == 'c') {
sb.append(2);
} else if (c == 'd' || c == 'e' || c == 'f') {
sb.append(3);
} else if (c == 'g' || c == 'h' || c == 'i') {
sb.append(4);
} else if (c == 'j' || c == 'k' || c == 'l') {
sb.append(5);
} else if (c == 'm' || c == 'n' || c == 'o') {
sb.append(6);
} else if (c == 'p' || c == 'q' || c == 'r'||c=='s') {
sb.append(7);
} else if (c == 't' || c == 'u' || c == 'v') {
sb.append(8);
} else if (c == 'x' || c == 'y' || c == 'w' || c == 'z') {
sb.append(9);
} else if (Character.isUpperCase(c)) {
if (c == 'Z') {
sb.append('a');
} else {
int n = (int) c;
n = n + 1;
char n1 = (char) n;
sb.append(Character.toLowerCase(n1));
}
}else{
sb.append(c);
}
}
return sb.toString();
}