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