我有一個2d布爾數組,我想根據輸入來動態創建它的大小。 例如:我有這個字符串作爲輸入「0-1 0-2 1 -2 1-3 2-3「。我將它拆分爲短劃線並將其解析爲一個int。所有這些座標都是布爾數組中的位置。當我初始化這個例子下面的數組時,它可以工作。但是如何在輸入改變的情況下動態初始化它?根據輸入更改數組初始化Java
myArray = new boolean [4][4];
我有一個2d布爾數組,我想根據輸入來動態創建它的大小。 例如:我有這個字符串作爲輸入「0-1 0-2 1 -2 1-3 2-3「。我將它拆分爲短劃線並將其解析爲一個int。所有這些座標都是布爾數組中的位置。當我初始化這個例子下面的數組時,它可以工作。但是如何在輸入改變的情況下動態初始化它?根據輸入更改數組初始化Java
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];
你可以使用的ArrayList來代替。你可以根據需要增長它們。 (這是很難縮小他們。)
分裂字符串在空間上,「」 它會給你座標的總數。
String[] splitted = "0-1 0-2 1-2 1-3 2-3".split(" ");
遍歷數組,拆分「 - 」並獲取maxX和maxY。 這會給你數組的尺寸。
聲明會像
boolean[][] myArray = new boolean[maxX][maxY];
希望它可以幫助
分開後,你可以從座標最大位置。基於此聲明你的數組大小。 –