我有一个二维布尔数组,我想根据传入的输入动态创建它的大小。例如:我将此字符串作为输入“0-1 0-2 1-2 1-3 2-3”。我在破折号上拆分它并将其解析为一个 int。所有这些坐标都是布尔数组中的位置。当我为此示例初始化下面的数组时,它可以工作。但是如果输入发生变化,我如何动态初始化它呢?
myArray = new boolean [4][4];
我有一个二维布尔数组,我想根据传入的输入动态创建它的大小。例如:我将此字符串作为输入“0-1 0-2 1-2 1-3 2-3”。我在破折号上拆分它并将其解析为一个 int。所有这些坐标都是布尔数组中的位置。当我为此示例初始化下面的数组时,它可以工作。但是如果输入发生变化,我如何动态初始化它呢?
myArray = new boolean [4][4];
如果您必须使用固定大小的数组,您可以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];
您可以改用 ArrayLists。您可以根据需要种植它们。(缩小它们更难。)
在空格上拆分字符串,“”它会给你坐标总数。
String[] splitted = "0-1 0-2 1-2 1-3 2-3".split(" ");
遍历数组,在“-”上拆分并获得 maxX 和 maxY。这将为您提供数组的尺寸。
声明会像
boolean[][] myArray = new boolean[maxX][maxY];
希望能帮助到你