检查一个值是否等于另一个值,如果是真的,返回另一个数值



大家好,快速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是否在其所属的范围内来处理您发布的问题,包括大小写更正。

相关内容

最新更新