大家好,我有个问题,我正在尝试使用ascii表来加密和解密最终由用户键入的消息。ascii表格我这里有基本加密码当代码到达z或z时,shift分别显示{和[当我试图让代码分别循环回a和a时z-->a not{z-->a not[我不太清楚我的措辞,请问您是否需要澄清
n1bvdmb61#
你正在编写的密码是凯撒密码。下面是我不久前编写的一个实现:
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 在它所属的范围内,包括案例更正。
char
1条答案
按热度按时间n1bvdmb61#
你正在编写的密码是凯撒密码。
下面是我不久前编写的一个实现:
它通过检查
char
在它所属的范围内,包括案例更正。