我无法让它正常工作,我需要指出正确的方向。用户将输入一个命令行整数来确定字符将旋转多少位置。我的问题是我希望所有小写和大写保持相同的大小写,同时保持空格和特殊字符不变,仅将字母旋转指定的整数。我需要确保,例如:整数集为 1,并且在要加密的字符串中输入字符“Z”,它需要回绕到“A”,而不是转到下一个 ASCII 字符“[” I一直在尝试使用“%”运算符,但我可能用错了。我并不是在找人为我编写整个代码,我知道我可以通过查看工作程序的源代码找到答案,但我试图自己弄清楚其中的大部分内容,但现在我被难住了并需要一点帮助。谢谢!
我终于让它工作了,我整个操作都是错误的,这对我有用。
char encrypt = ('A' + ( ( (input[i] - 'A') + key ) % 26));
在我尝试之前
char encrypt (input[i] + key) % 26;
感谢您的快速答复!
最佳答案
虽然有很多方法可以实现您想要的目标,但我建议您研究一下java.util.Map
。确定这是加密 Map
还是解密 Map
并将输入字符“放置”为键,将输出字符“放置”为值。然后,当您需要翻译时,您只需遍历每个要翻译的字符并组合输出值即可。注意未映射的值(因为它们在查找时将返回 null)。
关于凯撒密码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12927236/