1

我有一个二维布尔数组,我想根据传入的输入动态创建它的大小。例如:我将此字符串作为输入“0-1 0-2 1-2 1-3 2-3”。我在破折号上拆分它并将其解析为一个 int。所有这些坐标都是布尔数组中的位置。当我为此示例初始化下面的数组时,它可以工作。但是如果输入发生变化,我如何动态初始化它呢?

myArray = new boolean [4][4];
4

3 回答 3

3

如果您必须使用固定大小的数组,您可以max分别找到每个坐标的值,并使用这些值进行初始化:

int maxR = 0, maxC = 0;
for (String pair : pairs) {
    int r = ... // first part of the split
    int c = ... // second part of the split
    maxR = Math.max(maxR, r);
    maxC = Math.max(maxC, c);
}
boolean[][] myArray = new boolean[maxR][maxC];
于 2012-12-05T04:17:28.283 回答
0

您可以改用 ArrayLists。您可以根据需要种植它们。(缩小它们更难。)

于 2012-12-05T04:16:10.890 回答
0

在空格上拆分字符串,“”它会给你坐标总数。

   String[] splitted = "0-1 0-2 1-2 1-3 2-3".split(" ");

遍历数组,在“-”上拆分并获得 maxX 和 maxY。这将为您提供数组的尺寸。

声明会像

boolean[][] myArray = new boolean[maxX][maxY];

希望能帮助到你

于 2012-12-05T06:18:41.043 回答