如何在java中创建一系列数字

时间:2016-04-12 09:08:44

标签: java

我想在java中创建一个数字序列,如下所示:

1234957203969304597600234960702349100903450234847456282934857697900389262454869346

我想在序列中创建1000个数字..

我该怎么做?

我试着这样做:

String seq=null;
for (int i=0; i<1000; i++) {
seq=String.format("%d",i);
}
System.out.println(seq);

它不起作用,打印出来:999

感谢

5 个答案:

答案 0 :(得分:7)

StringBuilder sb = new StringBuilder();
for (int i=0; i<1000; i++) {
  sb.append(i);
}
System.out.println(sb.toString());

作为一般说明,虽然str = str + someString;可以正常工作,但在循环中它很快就会失控。尝试10000次迭代,你会看到(消耗大量的RAM和CPU)。

StringBuilder更好,如果真的需要以这种方式构建一个字符串,并且当一个字符序列追加多次时,它的性能总是更好。< / p>

答案 1 :(得分:4)

您需要将其附加到String。我建议使用StringBuilder。

你正在做的是每次都覆盖字符串

StringBuilder sb = new StringBuilder();
for(int i=0; i<1000; i++) {
    sb.append(Integer.toString(i);
}
System.out.println(sb.toString());

答案 2 :(得分:1)

要使代码生效,请将seq=String.format("%d",i);更改为seq+=String.format("%d",i);

然而,更好的方法是使用StringBuilder这样:

StringBuilder sb = new StringBuilder();
for (int i = 0; i < 1000; i++){
    sb.append(i);
}
String seq = sb.toString();
System.out.println(seq);

编辑:实际上,这不会生成长度为1000的字符串,因为它添加如下:012345678910...(&gt; 10是两个或三个数字而不是一个)。

所以,请使用Random类对0-9的随机数进行类似的尝试:

Random randomGenerator = new Random();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 1000; i++){
    sb.append(randomGenerator.nextInt(9));
}
String seq = sb.toString();
System.out.println(seq);

答案 3 :(得分:0)

如果你想创建一个长度为1000的流,每个数字是随机的,那么试试Math.random函数。

答案 4 :(得分:0)

您的代码正在打印999,因为您总是用循环的最后一个值覆盖字符串,您需要附加数据,而不是一遍又一遍地重写...

实施例

StringBuilder sb = new StringBuilder();
for (int i = 0; i < 1000; i++) {
    sb.append(i);
}
System.out.println(sb.toString());