java
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String s = in.nextLine();
StringBuilder builder = new StringBuilder();
int num = 'a' - 'A';
for(int i = 0; i < s.length(); i++){
char c = s.charAt(i);
if(c >= 'a' && c <= 'c'){
builder.append(2);
} else if(c >= 'd' && c <= 'f'){
builder.append(3);
} else if(c >= 'g' && c <= 'i'){
builder.append(4);
} else if(c >= 'j' && c <= 'l'){
builder.append(5);
} else if(c >= 'm' && c <= 'o'){
builder.append(6);
} else if(c >= 'p' && c <= 's'){
builder.append(7);
} else if(c >= 't' && c <= 'v'){
builder.append(8);
} else if(c >= 'w' && c <= 'z'){
builder.append(9);
} else if(c >= 'A' && c < 'Z'){
builder.append((char) (c + num + 1));
} else if(c == 'Z'){
builder.append('a');
} else {
builder.append(c);
}
}
System.out.println(builder.toString());
}
}
描述
规定这样一种密码的变换方法:
∙ ∙对于密码中的小写字母,参考九键手机键盘,将它们映射为对应的数字,具体地,abcabc 对应数字 22 、defdef 对应数字 33 、ghighi 对应数字 44 、jkljkl 对应数字 55 、mnomno 对应数字 66 、pqrspqrs 对应数字 77 、tuvtuv 对应数字 88 、wxyzwxyz 对应数字 99 ;
∙ ∙对于密码中的大写字母,先将其转换为小写,然后向后移动一位,即 ZZ 转换为 aa ,AA 转换为 bb ,BB 转换为 cc ,⋯⋯ ,YY 转换为 zz ,ZZ 转换为 aa 。
∙ ∙对于密码中的数字,保持不变。
现在,请你将给定的密码按照上述规则进行变换。
输入描述:
在一行上输入一个长度为 1≦length(s)≦1001≦length(s)≦100 的字符串 ss ,代表给定的密码。
输出描述:
在一行上输出一个字符串,代表变换后的密码。
思路:
1.一一对应按照题目要求;
2.大小写转换,不记得的话就直接减法计算