我的程序中有一小部分不能正常工作,我就是找不出原因
String KEY = "hello"
for (int h = 0; h < message.length(); h++)
{
keyWord += KEY.charAt(h);
}一旦我运行循环,keyWord字符串就不会包含它应该包含的hello的字母,但是如果我绕过它,只在我的程序中使用KEY,它将工作得很好。
有人能解释一下我做错了什么吗?
发布于 2011-11-18 02:53:39
我现在知道你在做什么了,你在创建一个密码。
public class Test {
public static void main(String[] args){
String key = "hello";
String keyWord = "";
String message = "asdfghj";
for (int i = 0; i < message.length();i++)
{
keyWord += key.charAt(i %key.length());
}
System.out.println(keyWord);
}
}对于不确定%或模运算符的任何人,返回除法的剩余部分。例如,4%5=4,因为4/5留下了4的余数,因为它进入它0次。现在6%5 =1 as 6/5 =1 R1。
发布于 2011-11-18 02:50:15
变化
for (int h = 0; h < message.length(); h++)至
for (int h = 0; h < KEY.length(); h++)您正在尝试将关键字附加到关键字...所以你需要检查它的长度,而不是其他字符串的长度。
发布于 2011-11-18 02:50:48
我假设keyWord是一个字符串。问题是,当你这样做的时候:
keyWord += KEY.charAt(h);表达式KEY.charAt(h)的类型为char,它是一个整数值。当您使用+ (或+=)将整数添加到字符串中时,编译器会生成代码来添加整数值的字符串表示形式。它不会附加字符本身。
https://stackoverflow.com/questions/8172567
复制相似问题