我的程序中有一小部分无法正常工作,我无法理解为什么
String KEY = "hello"
for (int h = 0; h < message.length(); h++)
{
keyWord += KEY.charAt(h);
}
一旦我运行循环,keyWord字符串不会保存它应该是你好的字母,但如果我绕过它并在我的程序中使用KEY它将正常工作。
有人可以说明我做错了吗?
答案 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。