Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将字符串拆分为矩阵数组_Java_Regex_Arrays_String_Matrix - Fatal编程技术网

Java 将字符串拆分为矩阵数组

Java 将字符串拆分为矩阵数组,java,regex,arrays,string,matrix,Java,Regex,Arrays,String,Matrix,我有一个字符串: 1,3,4,5, 1,4,5,0, 2,5,3,8, 我想存储在变量矩阵中(int[][])。实现这一目标的最佳方式是什么?我应该使用Stringclass”方法吗?或者我应该先使用Regex?(通过String.split(…)),然后在,上拆分每个结果数组的项。然后首先使用Integer.parseInt(..)(通过String.split(..))解析每个,然后在,上拆分每个结果数组的项。然后使用Integer.parseInt(..)String input=“1,

我有一个字符串:

1,3,4,5,
1,4,5,0,
2,5,3,8,
我想存储在变量矩阵中(
int[][]
)。实现这一目标的最佳方式是什么?我应该使用
String
class”方法吗?或者我应该先使用
Regex

(通过
String.split(…)
),然后在
上拆分每个结果数组的项。然后首先使用
Integer.parseInt(..)
(通过
String.split(..)
)解析每个,然后在
上拆分每个结果数组的项。然后使用
Integer.parseInt(..)
String input=“1,3,4,5,n1,4,5,0,n2,5,3,8,”;
字符串[]str1=input.split(“\n”);
int[][]矩阵=新int[str1.length][];
对于(int i=0;i
String input=“1,3,4,5,n1,4,5,0,n2,5,3,8”;
字符串[]str1=input.split(“\n”);
int[][]矩阵=新int[str1.length][];
对于(int i=0;i
StringTokenizer
事实上被弃用:“建议任何寻求此功能的人使用String的拆分方法或java.util.regex包。”嗯,有趣的是,JavaDoc现在实际上建议使用,但没有意识到这一点。不过,似乎最好尽可能避免使用正则表达式。此外,在这种情况下,StringTokenizer的速度要快3倍(10k次迭代),对象创建也更少,尽管可能并不重要。按照建议,将
StringTokenizer
替换为
String.split()
StringTokenizer
实际上已被弃用:“建议任何寻求此功能的人使用String的拆分方法或java.util.regex包。”嗯,有趣的是,JavaDoc现在实际上建议使用此方法,但没有意识到这一点。不过,似乎最好尽可能避免使用regex。在这种情况下,StringTokenizer的速度要快3倍(10k次迭代)并减少对象创建,尽管可能并不重要。按照建议将
StringTokenizer
替换为
String.split()
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]);
    }
}