以下是我的问题、报错截图和尝试的代码,求解答
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();
}
}