String source = "WEDGEZ"
char letter = source.charAt(i);
shift=5;
for (int i=0;i<source.length();i++){
if (source.charAt(i) >=65 && source.charAt(i) <=90 )
letterMix =(char)(('D' + (letter - 'D' + shift) % 26));
}
Run Code Online (Sandbox Code Playgroud)
好的,我要做的是取字符串 WEDGEZ,并将每个字母移动 5,因此 W 变为 B,E 变为 J,等等。但是我觉得与我使用的数字有些不一致。
对于 if 语句,我使用的是 ASCII 值,而对于
letterMix= statement,我使用的是 1-26 之间的数字(我认为)。实际上,问题也与此有关:
(char)(('D' + (letter - 'D' + shift) % 26));返回什么
?它返回一个正确的字符,但从一个整数转换而来。我在网上某处发现了该语句,我并没有完全自己编写它,那么该语句返回的究竟是什么。
这段代码的一般问题是,对于 W,它返回“/”,对于 Z,它返回 _,我猜这意味着它使用的是 ASCII 值。我真的不知道如何处理这个。
编辑:新代码
for (int i=0;i<source.length();i++)
{
char letter = source.charAt(i);
letterMix=source.charAt(i);
if (source.charAt(i) >=65 && source.charAt(i) …Run Code Online (Sandbox Code Playgroud)