[英]Loop doesn't assign string the correct value
我的程序中有一小部分无法正常工作,我无法弄清为什么
String KEY = "hello"
for (int h = 0; h < message.length(); h++)
{
keyWord += KEY.charAt(h);
}
一旦运行循环,keyWord字符串将不包含字母,应该打个招呼,但是如果我绕过它而只在程序中使用KEY,它将可以正常工作。
有人可以告诉我我做错了什么吗?
更改
for (int h = 0; h < message.length(); h++)
至
for (int h = 0; h < KEY.length(); h++)
您正在尝试将KEY附加到关键字...,因此您需要检查其长度,而不是其他字符串。
我假设keyWord
是一个字符串。 问题是当您这样做时:
keyWord += KEY.charAt(h);
表达式KEY.charAt(h)
的类型为char
,它是一个整数值。 当使用+
(或+=
)向字符串添加整数时,编译器会生成代码以添加整数值的字符串表示形式。 它不会附加字符本身。
现在,我了解您正在尝试做什么,正在创建密码。
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等于6/5 = 1 R1。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.