首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >循环没有为字符串分配正确的值

循环没有为字符串分配正确的值
EN

Stack Overflow用户
提问于 2011-11-18 02:47:49
回答 3查看 118关注 0票数 2

我的程序中有一小部分不能正常工作,我就是找不出原因

代码语言:javascript
运行
复制
String KEY = "hello"
for (int h = 0; h < message.length(); h++)
{
    keyWord += KEY.charAt(h);
}

一旦我运行循环,keyWord字符串就不会包含它应该包含的hello的字母,但是如果我绕过它,只在我的程序中使用KEY,它将工作得很好。

有人能解释一下我做错了什么吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-18 02:53:39

我现在知道你在做什么了,你在创建一个密码。

代码语言:javascript
运行
复制
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。

票数 0
EN

Stack Overflow用户

发布于 2011-11-18 02:50:15

变化

代码语言:javascript
运行
复制
for (int h = 0; h < message.length(); h++)

代码语言:javascript
运行
复制
for (int h = 0; h < KEY.length(); h++)

您正在尝试将关键字附加到关键字...所以你需要检查它的长度,而不是其他字符串的长度。

票数 1
EN

Stack Overflow用户

发布于 2011-11-18 02:50:48

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

代码语言:javascript
运行
复制
keyWord += KEY.charAt(h);

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8172567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档