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