我正在编写一个代码来破译邮件。为此,您输入一个字符串,并按以下方式输出b,b变为a,c变为b,依此类推。同样,对于数字2变为1,3变为2.
答案 0 :(得分:1)
方法String.replace(char,char)
用新字符替换所有给定字符的出现次数。
所以,例如,假设你有一个像“与裁缝交谈”这样的字符串,你在它上面运行了replace('t','w')
,你就得到了“走路的人”。
但这意味着一旦你找到你已经更换过的字母,你就会再次更换它们 - 再回到另一封信。
您不应该使用replace
。最好的办法可能是使用StringBuilder
并在解密后将每个字母附加到它上面。
另请注意,只是为了找到这封信而通过整个字母表是非常浪费的。首先,已经存在indexOf
类中称为String
的方法。其次,对于英文字母和数字,字符unicode值是连续的。这意味着您可以通过简单地减去一个来a
来b
:
char ch = 'b';
ch = (char)(ch - 1);
这会在a
中为您提供ch
。所以你需要做的就是确保字符在给定的范围内,然后从中减去1。