1
我有一個字符串:字符串分割到矩陣陣列
1,3,4,5,
1,4,5,0,
2,5,3,8,
即我想在一個變量矩陣(int[][]
)來存儲。什麼是完成這個最好的方法?我應該使用String
類的方法嗎?或者我應該使用Regex
?
我有一個字符串:字符串分割到矩陣陣列
1,3,4,5,
1,4,5,0,
2,5,3,8,
即我想在一個變量矩陣(int[][]
)來存儲。什麼是完成這個最好的方法?我應該使用String
類的方法嗎?或者我應該使用Regex
?
首先(通過String.split(..)
)split on newline,然後將結果數組中的每個項的項分成,
。然後分析每個使用Integer.parseInt(..)
String input = "1,3,4,5,\n1,4,5,0,\n2,5,3,8,";
String[] str1 = input.split("\n");
int[][] matrix = new int[str1.length][];
for (int i = 0; i < matrix.length; i++) {
String[] str2 = str1[i].split(",");
matrix[i] = new int[str2.length];
for (int j = 0; j < matrix[i].length; j++) {
matrix[i][j] = Integer.parseInt(str2[j]);
}
}
'StringTokenizer'是事實上的棄用:「我們建議任何尋求此功能使用字符串的split方法或java.util.regex包來代替。」 – Bozho 2011-03-20 00:02:57
嗯,有趣的是,JavaDoc實際上現在建議,沒有意識到這一點。儘可能避免正則表達式似乎是最好的。同樣,StringTokenizer在這種情況下(10k次迭代)速度提高了3倍,並且創建的對象更少,但可能無關緊要。 – WhiteFang34 2011-03-20 00:13:29
建議使用'String.split()'代替'StringTokenizer'。 – WhiteFang34 2011-03-20 09:56:13