java - 当循环继续执行时删除随机生成的字符串

标签 java string random stringbuilder

下面的代码用于生成 5 个随机字符串,其中包含 9 个字符空间的 X 和 O。打印字符串时,字符串会不断添加到前一个字符串上并变长。如何让字符串在每次生成时在新行上打印?

public static void main(String[] args) { 
    StringBuilder b = new StringBuilder();
    Random r = new Random();
    String subset = "XO";
    for (int i = 0; i < 5; i++) {
        for (int j = 0; j < 9; j++) {
            int index = r.nextInt(subset.length());
            char c = subset.charAt(index);
            b.append(c);
        }
        String s = b.toString() ;

        System.out.println(s);
    }               

最佳答案

您需要将 stringBuilder 初始化移到第一个 for 循环内。这样,它将删除已有的字符,而不是仅仅将它们附加到末尾。本质上你的 stringBuilder 永远不会重置为空。

关于java - 当循环继续执行时删除随机生成的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24617176/

相关文章:

java - 单击 ListView 中的项目后如何提供视频链接

java - 使用 Oracle、Java 和 AngularJS 构建实时数据网格的策略

c - 如何拆分多行字符串并将它们存储到C中的json数组中

python - 为什么要通过计算字符的异或来比较两个字符串?

c++ - 使用 C++ rand() 获取随机方向(上/下/左/右)——总是起床

java - 使用 BatteryManager 接收广播 Intent 时出错

Java编译错误(javax.swing.JComponent)

java - 为什么这个字符串的值为 null 但如果我检查它是否为 null 结果为 false?

PHP随机行帮助

php - 如何通过提供种子并获得相同顺序来随机化 PHP 中的数组?