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));
}
好吧我想要做的是采取字符串WEDGEZ,并将每个字母移5,所以W变成B和E变成J等,但我觉得有一些与我使用的数字不一致。对于if语句,我使用ASCII值,对于letterMix =语句,我使用1-26(我认为)中的数字。实际上,问题也是这样的:(char)(('D'+(letter - 'D'+ shift)%26));无论如何返回?它返回一个char权限,但是从int转换而来。我在网上发现了一个声明,我没有完全自己编写它,所以声明返回的是什么。Java Int&ASCII问题
这段代码的普遍问题是,用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) <=90){
letterMix=(char)('A' + ( ((letter - 'A') + input) % 26));
}
}
这是'homework'? – st0le 2010-09-24 05:51:01
你是否查找过你的角色的实际ASCII值? – 2010-09-24 05:55:34
是的,我从那里得到了65和90。 – newtojava 2010-09-24 05:56:54