题解 | #字符串加解密#

字符串加解密

https://www.nowcoder.com/practice/2aa32b378a024755a3f251e75cbf233a

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        try(BufferedReader br = new BufferedReader(new InputStreamReader(System.in))) {
            String str = br.readLine();
            char[] chars = str.toCharArray();
            Map<Character, Integer> map = new HashMap<>();
            for (int i = 0; i < 26; i++) {
                map.put((char)(i + 65), i + 65);
            }
            for (int i = 0; i < 26; i++) {
                map.put((char)(i + 97), i + 97);
            }
            for (int i = 0; i < 10; i++) {
                map.put((i + "").charAt(0), i);
            }
            StringBuffer sb = new StringBuffer();
            //加密
            for (char c : chars) {
                Integer index = map.get(c);
                if (index != null) {
                    if (index == (65 + 25)) {
                        index = 65;
                    } else if (index == 97 + 25) {
                        index = 97;
                    } else if (index == 9) {
                        index = 0;
                    } else {
                        index++;
                    }
                    if (index >= 0 && index <= 9) {
                        sb.append(index);
                    } else if (c >= 'a' && c <= 'z') {
                        sb.append((char)(index.intValue() - 32));
                    } else {
                        sb.append((char)(index.intValue() + 32));
                    }
                } else {
                    sb.append(c);
                }
            }
            System.out.println(sb.toString());
            //解密
            str = br.readLine();
            sb.setLength(0);
            chars = str.toCharArray();
            for (char c : chars) {
                Integer index = map.get(c);
                if (index != null) {
                    if (index == 65) {
                        index = 65 + 25;
                    } else if (index == 97) {
                        index = 97 + 25;
                    } else if (index == 0) {
                        index = 9;
                    } else {
                        index--;
                    }
                    if (index >= 0 && index <= 9) {
                        sb.append(index);
                    } else if (c >= 'a' && c <= 'z') {
                        sb.append((char)(index.intValue() - 32));
                    } else {
                        sb.append((char)(index.intValue() + 32));
                    }
                } else {
                    sb.append(c);
                }
            }
            System.out.println(sb.toString());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}


全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务