
String data = “1|apple,2|ball,3|cat”;
String[] rows = data.split(“,”);
String[][] matrix = new String[rows.length][]; int r = 0; for (String row : rows) { matrix[r++] = row.split("\|"); } System.out.println(matrix[1][1]); // prints "ball" System.out.println(Arrays.deepToString(matrix)); // prints "[[1, apple], [2, ball], [3, cat]]"除了使用
String.split正则表达式外,其他 *** 作非常简单,因此元字符
|需要转义。也可以看看
- 正则表达式和转义特殊字符
- Java Arrays.equals()对于二维数组返回false。
- 使用
Arrays.deepToString
和Arrays.deepEquals
用于多维数组
- 使用
另类
如果知道行和列的数量,则可以预分配a
String[][]并使用a
Scanner,如下所示:
Scanner sc = new Scanner(data).useDelimiter("[,|]"); final int M = 3; final int N = 2; String[][] matrix = new String[M][N]; for (int r = 0; r < M; r++) { for (int c = 0; c < N; c++) { matrix[r][c] = sc.next(); } } System.out.println(Arrays.deepToString(matrix)); // prints "[[1, apple], [2, ball], [3, cat]]"欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)