谧小夜 2023-04-05 16:46 采纳率: 0%
浏览 27

Java语言做译密码问题,为什么AC只有80%

以下是我的问题、报错截图和尝试的代码,求解答

img

1045: 译密码
题目描述
为使电文保密,往往按一定规律将其转换成密文,收报人再按约定的规律将其译回原文。
例如,可以按以下规律将电文变成密码:
将字母A变成E,a变成e,即变成其后的第4个字母,W变成A,X变成B,Y变成C,Z变成D,“China!”变成“Glmre!”。

输入格式
输入有若干行,每行一串字符,长度不超过500。

输出格式
输出其相应的密码。

输入样例
China!
important

**输出样例 **
Glmre!
mqtsvxerx
题目出处

import java.util.Scanner;

public class p45 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNextLine()) {
            String s = sc.nextLine();
            String s1 = toLetter(s);
            System.out.println(s1);
        }
    }

    public static String toLetter(String s){
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')) {
                if ((c >= 'W' && c <= 'Z') || (c >= 'w' && c <= 'z')){
                    char c1 = (char) (c - 22);
                    sb.append(c1);
                } else {
                    char c1 = (char) (c + 4);
                    sb.append(c1);
                }
            } else {
                sb.append(c);
            }
        }
        return sb.toString();
    }
}

  • 写回答

2条回答 默认 最新

  • 程序yang 优质创作者: 编程框架技术领域 2023-04-05 17:08
    关注

    参考:

    public static String toLetter(String s){
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')) {
                if ((c >= 'W' && c <= 'Z') || (c >= 'w' && c <= 'z')){
                    char c1 = (char) (c - 22);
                    sb.append(c1);
                } else if ((c >= 'A' && c < 'W') || (c >= 'a' && c < 'w')) {
                    char c1 = (char) (c + 4);
                    sb.append(c1);
                } else if (c == 'W') {
                    sb.append('A');
                } else if (c == 'X') {
                    sb.append('B');
                } else if (c == 'Y') {
                    sb.append('C');
                } else if (c == 'Z') {
                    sb.append('D');
                }
            } else {
                sb.append(c);
            }
        }
        return sb.toString();
    }
    
    评论

报告相同问题?

问题事件

  • 创建了问题 4月5日