java - 检查一个值是否等于另一个值,如果是,则返回另一个值
问题描述
大家好,快速java问题,
我正在尝试使用 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
在它所属的范围内来处理您发布的问题,包括大小写更正。
推荐阅读
- slick.js - SlickJS carousel - 垂直模式会切断副本并且无法按预期运行
- python - 在 Seaborn 线图中移动刻度线的位置
- php - Twilio:使用 PHP 客户端(或纯 HTTP)下载语音(电话)录制 MP3
- git - 有没有办法让 git 在使用 VS Code 的开发容器中正常工作?
- javascript - 传递给函数的参数在 fetch 方法中不可见
- c++ - 函数模板回退重载
- c++ - 写入错误后,独立 ASIO 库在 OSX 和 Linux 系统上的行为不同
- python - TypeError:需要一个类似字节的对象,而不是'str' Python 3下载长文件
- r - 在 R 中导出带有尾随零的 csv
- reactjs - AntD 使用 Form [form]=Form.useForm() 不是函数或不可迭代 React