Java中将字符串转换为二维字符串数组 [英] Convert string into two dimensional string array in Java
本文介绍了Java中将字符串转换为二维字符串数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我喜欢转换字符串,例如:
I like to convert string for example :
String data = "1|apple,2|ball,3|cat";
变成这样的二维数组
{{1,apple},{2,ball},{3,cat}}
我已经尝试使用 split("")
方法,但仍然没有解决方案:(
I have tried using the split("")
method but still no solution :(
谢谢..
凯
推荐答案
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
需要正则表达式,所以元字符 |
需要转义.
Pretty straightforward except that String.split
takes regex, so metacharacter |
needs escaping.
- 正则表达式和转义特殊字符
- Java Arrays.equals() 为两个返回 false维数组.
- 对多维数组使用
Arrays.deepToString
和Arrays.deepEquals
如果您知道将有多少行和列,您可以预先分配一个
String[][]
并使用一个Scanner
如下:If you know how many rows and columns there will be, you can pre-allocate a
String[][]
and use aScanner
as follows: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]]"
这篇关于Java中将字符串转换为二维字符串数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
- 对多维数组使用
查看全文