如何解决为什么代码在 ASCII 二进制中循环超过 122
所以我无法理解为什么给定的代码没有按预期运行,我想要的是输出字母变化(变化值),例如字母“a” + change(值为 3) 将产生 "d",除非字母 "number" + change 大于值为 122 的字母 "z" 然后它将循环到 a 然后去从那里 。 (我试过各种可能的方式来解决它,但预期它不工作了),请帮助谢谢:d(这里也就是输入yzdkvyzgtyrkdspkcstqdkxlvpckdstckslbopbkotokizekmbedpkqzbnpkdstckmikdbityrkcstqdckzypkldklkdtxpkzbkecpklkqzbkwzzkdzkozkdspkcstqdtyrkwplcpkgbtdpkmbedpkqzbnpklckdspkvpikqzbkdlcvkyexmpbkdgz)
package LabExperience;
import java.util.Scanner;
public class LabExperienceChiper {
public static void main(String[] args) {
System.out.println("enter the code");
Scanner machine = new Scanner(System.in);
String let = machine.next();
String news = "";
int find;
int find2;
for(int change = -1; change <= 1; change++)
{
for(int x = 0; x<let.length(); x++)
{
char num = let.charAt(x);
if(num + change > 122)
{
find = 'z'-num;///find how much to take away from the change
find2 = change-find;////this takes the value 0f change and subtracts what is taken and adds it to the value of 'a'
num= (char) (num + find2);
news = news+num;
}
else
{
if(num + change <= 122)
{
num = (char) (num + change);
news = news + num;
}
}
}
System.out.println(news);
news = "";
}
}
}
解决方法
所以我在第 32 行(find 2 部分)找出了问题所在。我没有减去 2,这会导致二进制数的额外加法(所以 97 就是 99)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。