循环不会为字符串分配正确的值

时间:2011-11-17 18:47:49

标签: java loops

我的程序中有一小部分无法正常工作,我无法理解为什么

String KEY = "hello"
for (int h = 0; h < message.length(); h++)
{
    keyWord += KEY.charAt(h);
}

一旦我运行循环,keyWord字符串不会保存它应该是你好的字母,但如果我绕过它并在我的程序中使用KEY它将正常工作。

有人可以说明我做错了吗?

3 个答案:

答案 0 :(得分:1)

更改

for (int h = 0; h < message.length(); h++)

for (int h = 0; h < KEY.length(); h++)

您正尝试将KEY附加到关键字...因此您需要检查其长度而不是其他字符串。

答案 1 :(得分:0)

我假设keyWord是一个字符串。问题是当你这样做时:

keyWord += KEY.charAt(h);

表达式KEY.charAt(h)的类型为char,它是一个整数值。使用+(或+=)向String添加整数时,编译器会生成代码以添加整数值的字符串表示形式。它不附加角色本身。

答案 2 :(得分:0)

我现在看到你想要做什么,你正在创造一个密码。

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);
}
}

对于不确定%或modulo运算符返回除法余数的人。例如4%5 = 4,因为4/5留下4的余数,因为它进入0次。现在6%5 = 1,因为6/5 = 1 R1。