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

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日

悬赏问题

  • ¥15 系统 24h2 专业工作站版,浏览文件夹的图库,视频,图片之类的怎样删除?
  • ¥15 怎么把512还原为520格式
  • ¥15 MATLAB的动态模态分解出现错误,以CFX非定常模拟结果为快照
  • ¥15 求高通平台Softsim调试经验
  • ¥15 canal如何实现将mysql多张表(月表)采集入库到目标表中(一张表)?
  • ¥15 wpf ScrollViewer实现冻结左侧宽度w范围内的视图
  • ¥15 栅极驱动低侧烧毁MOSFET
  • ¥30 写segy数据时出错3
  • ¥100 linux下qt运行QCefView demo报错
  • ¥50 F1C100S下的红外解码IR_RX驱动问题