如何在Java中初始化一个二维字符串数组

4

我知道如何声明数组并已经这样做了:

String[][] board1 = new String[10][10];

现在我想默认将每个空格替换为“-”(不包括引号)。我看到了其他类似的问题,但答案对我来说没有意义。我只能理解的是可能需要一个for循环。

2个回答

9

我能想到的最快的方法是使用Arrays.fill(Object[], Object),用法如下:

String[][] board1 = new String[10][10];
for (String[] row : board1) {
    Arrays.fill(row, "-");
}
System.out.println(Arrays.deepToString(board1));

这里使用 For-Each 来迭代 board1 中的 String[],并使用 "-" 填充它们。接着使用 Arrays.deepToString(Object[]) 进行打印。


5

You could do ...

String[][] board1 = new String[][] {
    {"-", "-", "-", "-", "-", "-", "-", "-", "-", "-"},
    {"-", "-", "-", "-", "-", "-", "-", "-", "-", "-"},
    {"-", "-", "-", "-", "-", "-", "-", "-", "-", "-"},
    {"-", "-", "-", "-", "-", "-", "-", "-", "-", "-"},
    {"-", "-", "-", "-", "-", "-", "-", "-", "-", "-"},
    {"-", "-", "-", "-", "-", "-", "-", "-", "-", "-"},
    {"-", "-", "-", "-", "-", "-", "-", "-", "-", "-"},
    {"-", "-", "-", "-", "-", "-", "-", "-", "-", "-"},
    {"-", "-", "-", "-", "-", "-", "-", "-", "-", "-"},
    {"-", "-", "-", "-", "-", "-", "-", "-", "-", "-"},
};

或者

String[][] board1 = new String[10][10];
for (int outter = 0; outter < board1.length; outter++) {
    String[] row = new String[board1[outter].length];
    for (int inner = 0; inner < row.length; inner++) {
        row[inner] = "-";
    }
    board1[outter] = row;
}

或者

String[][] board1 = new String[10][10];
for (int outter = 0; outter < board1.length; outter++) {
    for (int inner = 0; inner < board1[outter].length; inner++) {
        board1[outter][inner] = "-";
    }
}

其实我真的很想知道为什么first method无法指定数组的大小。真的无法,为什么?new long [2] [2] {{1,1},{1,0}}; 会失败。 - Hearen
1
@Hearen 真的从来没有想过,但我认为这种语言基本上是在说你要么事先告诉我,要么展示给我看。 - MadProgrammer
这有点合理,但如果两者都提供,它仍然会变成一个错误。 - Hearen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接