用随机字符填充字符串长度

时间:2013-09-06 17:14:15

标签: java for-loop random

这是我的随机填充代码,基于循环,它应该在“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==

1 个答案:

答案 0 :(得分:3)

在每个循环中,您会影响单词的长度。结果是你只需要添加一半所需的字符,以使字长达到10。

第一次迭代。 i为0.条件i < 10 - 6true,因此会添加随机字符。

第二次迭代。 i为1,但字长现为7. i < 10 - 7true,因此会添加第二个随机字符。

现在i为2,但字长现为8. i < 10 - 8false,因此循环结束。

解决方案是预先确定所需的字符数,因此它不会改变每次迭代:

int charsNeeded = 10 - word.length();
for (int i = 0; i < charsNeeded; i++)