大家好,快速java问题,
我正在尝试使用Ascii表来加密和解密最终将由用户键入的消息。
Ascii表格
我这里有基本加密码
一旦代码到达z或z,当我试图让代码分别返回到a和a 时,移位分别显示{和[
z->a不是{Z->A不是[
请询问您是否需要任何澄清,因为我不太确定我的措辞
您正在编程的密码是凯撒密码。
这是我不久前编码的一个实现:
public class Main {
public static void main(String[] args) {
System.out.println(caesar("hello", 1));
}
public static String caesar(String text, int offset) {
String output = "";
char outputchar;
for (int i = 0; i < text.length(); i++) {
if (isLetter(text.charAt(i))) {
outputchar = (char) (text.charAt(i) + offset);
if (Character.isUpperCase(text.charAt(i))) {
if ((!isLetter(outputchar)) || (Character.isLowerCase(outputchar))) {
outputchar = (char) (outputchar - 26);
}
} else {
if ((!isLetter(outputchar)) || (Character.isUpperCase(outputchar))) {
outputchar = (char) (outputchar - 26);
}
}
output += outputchar;
} else {
output += text.charAt(i);
}
}
return output;
}
public static boolean isLetter(char letter) {
return ((letter >= 97) && (letter <= 122) || (letter >= 65) && (letter <= 90));
}
}
它通过检查char
是否在其所属的范围内来处理您发布的问题,包括大小写更正。