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

标签 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==

最佳答案

在每个循环中,您都会影响单词的长度。结果是您只添加了使单词长度达到 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++)

关于java - 用随机字符填充字符串长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18663124/

相关文章:

c# - 从预设位置开始迭代,到达终点后继续迭代

javascript - 如何使用 JavaScript 用文本填充屏幕?

c - 从文件中读取并存储在数组中

mysql - SQL (MySQL) 为每个用户选择随机记录集

java - Hibernate 空间查询异常,但在 postgres 控制台中正常工作

java - 如何以所有可能的方式拆分一个数字?

java - if 语句中出现的变量值

java - HttpClient 4.1,InputStreamEntity,自动计算长度

java - 限制循环字符串生成器中的空间

c - 与输入相对质数的随机数