在2d数组中生成随机数

时间:2015-02-03 23:34:28

标签: java arrays string

我正在尝试让我的程序在1000-9999之间打印随机数,但我在String.Format时出现错误。

例如,如果我的程序有效,它将打印出类似这样的内容:

7996   2799   2006   2419   1147

7661   5383   8428   6487   3961

2799   8789   6948   8584   8634

7462   5051   4942   5378   1028

9978   1533   7657   4240   7894

6183   6277   9629   2996   8240

8985   9712   3922   2589   5323

8152   4612   6563   9460   3045

代码

import static java.lang.System.*;

public class SuperRandGame{
    public static void main(String args[]){
        new Environment();
}}


class Environment
{
    private int[][] table;

    Environment()
    {
        populate();
        output();
    }

    public void populate()
    {
        table = new int[8][5];

        for(int r=0;r<table.length;r++)
        {
            for(int c=0;c<table[0].length;c++)
            table[r][c]= String.format("%2d",(int)(Math.random()*8999+1000) + "  ");
        }

    }

    public void output()
    {
        out.println();
        for(int r=0;r<table.length;r++)
        {
            for(int c=0;c<table[0].length;c++)
            out.print(String.format("%2d",table[r][c]) + "  ");
            out.println();
        }
        out.println();
        out.println();
    }
}

2 个答案:

答案 0 :(得分:3)

String.format()方法返回 String 类型。因此,您无法在 int [] [] 数组中存储字符串类型。

答案 1 :(得分:0)

更改此行(您有两行):

for(int c=0;c<table[0].length;c++)

要:

for(int c=0;c<table[i].length;c++) //Note the index "i"

使用for循环时,您可能会收到索引超出范围的错误。