题解 | #简单密码#

简单密码

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

    }
    
}
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务