2012-12-05 35 views
1

我有一個2d布爾數組,我想根據輸入來動態創建它的大小。 例如:我有這個字符串作爲輸入「0-1 0-2 1 -2 1-3 2-3「。我將它拆分爲短劃線並將其解析爲一個int。所有這些座標都是布爾數組中的位置。當我初始化這個例子下面的數組時,它可以工作。但是如何在輸入改變的情況下動態初始化它?根據輸入更改數組初始化Java

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

分開後,你可以從座標最大位置。基於此聲明你的數組大小。 –

回答

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]; 
0

你可以使用的ArrayList來代替。你可以根據需要增長它們。 (這是很難縮小他們。)

0

分裂字符串在空間上,「」 它會給你座標的總數。

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

遍歷數組,拆分「 - 」並獲取maxX和maxY。 這會給你數組的尺寸。

聲明會像

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

希望它可以幫助