如何生成Matrix样式输出

时间:2014-08-09 23:03:11

标签: java

我正在尝试在Matrix样式中获得由1和0组成的随机字符串的输出。我知道如何显示由1和0组成的字符串,但由于某种原因我不能继续循环它。我想要做的是,每当StringBuilder达到20的长度时,我想再次在新行上开始循环并重复这100次。

import java.util.List;
import java.util.Random;

public class main {

    static Random rand = new Random();
    static StringBuilder x = new StringBuilder();
    static int a = 0;

    public static void main(String[] args) {
        generatingnumber();
    }

    public static void generatingnumber() {

        for (int bv = 0; bv <= 100; bv++) {

            int random = rand.nextInt(50);

            if (random % 2 == 0) {
                x.append(" 0");
            } else {
                x.append(" 1");
            }

            if (x.length() == 20) {
                System.out.println(x);
            }
        }
    }
}

2 个答案:

答案 0 :(得分:0)

public class MatrixFilm {

    public static void main(String[] args) {
        int rows = 100;
        int cols = 20;

        for (int count1 = 0; count1 < (rows * cols); count1++) {
            for (int count2 = 0; count2 < cols; count2++) {
                int randomNum = 0 + (int) (Math.random() * 2);
                System.out.print(" " + randomNum);
            }
            System.out.println();
        }
    }
}


结果:

 0 0 1 0 0 0 0 1 0 0 1 1 0 0 1 0 1 1 1 1
 1 1 0 1 1 1 0 1 0 1 0 1 1 0 1 1 0 0 1 0
 0 1 0 0 1 0 1 1 0 0 1 1 1 0 1 1 1 1 1 0
 0 1 0 1 1 1 1 1 0 0 1 1 0 0 0 1 1 0 1 0
 0 0 0 1 0 1 0 0 1 0 0 0 1 0 1 0 0 1 0 0
 ....

答案 1 :(得分:0)

您的字符串长度只有20个字符。您对x.length() == 20x.length() % 20 == 0

是否感兴趣

对于新行,您可以在打印之前将"\n"(或Windows机器的"\r\n"附加到字符串中。

println更改为print(不会在打印字符串的末尾添加新行字符),以保持打印之间的连续性。

考虑到所有因素:

if (x.length() % 20 == 0) {
  x.append("\r\n");
  System.out.print(x);
}

然而,它仍然是不够的,因为“\ r \ n”本身会增加字符串的长度。这应该有效:

if (x.length() % 20 == 0) {
  x.replace(x.length() - 2, x.length(), "\r\n");
  System.out.print(x);
}

你也可以 - 并且最好...... - 重置字符串,正如@owlstead所提到的那样。

if (x.length() == 20) {
  System.out.println(x);
  x.setLength(0);
}

反正;我提出的不是解决问题的方法。只有解决方案 - 可能是不正确的 - 你目前正在接受它。