【发布时间】:2013-09-06 17:14:14
【问题描述】:
这是我的随机填充代码,基于循环,它应该在“KELVIN”之后生成4个随机字符(因为KELVIN需要6个字符),但是当我打印时,只生成2个随机字符,奇怪
Random r = new Random();
//string imported
String word = "KELVIN";
//loop for fill up 10 characters
for (int i=0; i<10-word.length();i++)
{
char randomadd = (char)(r.nextInt(26) + 'A');
word +=randomadd;
}
System.out.print(word+"==");
控制台输出:
KELVINSN==
【问题讨论】:
-
for循环中的条件使用word.length(),随着每次迭代而增加。 -
您应该考虑使用 StringBuilder 而不是每次都向字符串中添加字符。
-
谢谢大家,我明白了,我会尝试使用 StringBuilder,但我认为 @rgettman 的方法更容易
-
@atom2ueki 我建议先让我的解决方案发挥作用,然后按照 trevor-e 的建议尝试使用
StringBuilder。StringBuilder在构造字符串方面比重复使用+=连接字符串更有效。 -
@rgettman 你的建议有效,我也去试试StringBuilder