我正在尝试在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);
}
}
}
}
答案 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() == 20
但x.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);
}
反正;我提出的不是解决问题的方法。只有解决方案 - 可能是不正确的 - 你目前正在接受它。