题解 | #简单密码#
简单密码
http://www.nowcoder.com/practice/7960b5038a2142a18e27e4c733855dac
解法
步骤思路:对于小写字母用map建立一个对应的转换;对于大写字母,如果是'Z'就直接为'a',其余的直接转换为int类型再+1再强转回来即可。
import java.util.*;
public class Main{
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Map<String, String> map = new HashMap<String, String>(){
{
put("a","2");
put("b","2");
put("c","2");
put("d","3");
put("e","3");
put("f","3");
put("g","4");
put("h","4");
put("i","4");
put("j","5");
put("k","5");
put("l","5");
put("m","6");
put("n","6");
put("o","6");
put("p","7");
put("q","7");
put("r","7");
put("s","7");
put("t","8");
put("u","8");
put("v","8");
put("w","9");
put("x","9");
put("y","9");
put("z","9");
}
};
String str = in.nextLine();
char[] arr = str.toCharArray();
for (int i = 0;i < arr.length;i++){
if(arr[i] >= 'a' && arr[i] <= 'z'){
String c = String.valueOf(arr[i]);
if (map.containsKey(c)) {
arr[i] = map.get(c).charAt(0);
}
}else if(arr[i] >= 'A' && arr[i] <= 'Z'){
if(arr[i] == 'Z'){
arr[i] = 'a';
}else{
String s = String.valueOf(arr[i]);
int a = (int)s.toLowerCase().charAt(0);
char res = (char) ++a;
arr[i] = res;
}
}
}
String s = String.copyValueOf(arr);
System.out.println(s);
}
}