簡體   English   中英

將整數向量轉換為2D數組

[英]Convert vector of integers into a 2D array

我有一個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;
}}

現在,我想將其轉換為二維int數組( int[][] )。 例如,如果我有[0,1,0,0] ,它將變成列向量,就像這樣

0
1
0
0  

有任何想法嗎?

這樣的事嗎?

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

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

除非您使用過時的jre版本,否則不建議使用Vector 我建議您遷移到“ List並據此做出我的回答。 另外,我很困惑為什么您要轉換為Integer。 您可以像這樣直接在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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM