2013-07-24 83 views
0

我有一個String,我可以將它轉換爲Vector<Integer>將整數向量轉換爲二維數組

public class VectorConverter { 
public static Vector <Integer> v (String s) { 
    Vector<Integer> myVec = new Vector(); 

    //Convert the string to a char array and then just add each char to the vector 
    char[] sChars = s.toCharArray(); 
    int[] sInt= new int [sChars.length];; 
    for(int i = 0; i < s.length(); ++i) { 
     sInt[i]= Character.getNumericValue(sChars[i]); 
     myVec.add(sInt[i]); 
    } 

    return myVec; 
}} 

現在我想將其轉換成2D int陣列(int[][])。例如,如果我有[0,1,0,0]它將成爲一個列向量,像這樣

0 
1 
0 
0 

任何想法?

+0

什麼尺寸佔地我能看到的第一個問題。作爲我給出的例子,您想要更改多少個元素行 –

+0

,我想要一個大小爲(4,1)的數組, – nami

回答

0

使用Vector是沒有人注意的,除非你使用古老版本的jre。我建議你遷移到List並根據我的答案。 另外,我很疑惑你爲什麼轉換爲整數。 你可以像這樣直接在char []上工作。


您可以嘗試輸入以下這樣[[4,2,6][....]]

ArrayList<ArrayList<Integer>> table = new ArrayList<ArrayList<Integer>>(); 
char[] chars = myString.toCharArray(); 
ArrayList<Integer> current = null; 
for(int i=1; i<chars.length-1; ++i) { // To avoid parsing begining and end of the array 
    char c = chars[i]; 
    if(c == '[') 
     table.add(current = new ArrayList<Integer>()); 
    if(c == ']') 
     continue; 
    current.add(Character.getNumericValue(c)); 
} 
int[][] result = table.toArray(new int[0][0]); // Maybe this will fail and you'll have to use Integer[][] instead 
0

類似這樣的東西?

int[][] result = new int[myVec.size()][]; 

for(int i = 0; i < myVec.size(); i++) { 
    result[i] = myVec.get(i); 
}