如何拆分多维数组的字符串
How to split string of mulitdimensional array
我这里有字符串
String str1 = "{{1,2,3},{4,5,6},{7,8,9}}"
我期望的结果是这样的
{1,2,3}
{4,5,6}
{7,8,9}
我在 java 语言中使用什么方法?
谢谢。
我尝试使用拆分方法,然后将每个数组放入数组列表变量“data”中。
结果:
1,2,3
,
4,5,6
,
7,8,9
并尝试删除只有字符串值","的空数据数组,结果:
1,2,3
,
4,5,6
,
7,8,9
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.base/java.lang.StringLatin1.charAt(StringLatin1.java:48)
at java.base/java.lang.String.charAt(String.java:712)
at io.jhdf.examples.test2.lambda[=12=](test2.java:26)
at java.base/java.util.ArrayList.removeIf(ArrayList.java:1672)
at java.base/java.util.ArrayList.removeIf(ArrayList.java:1660)
at io.jhdf.examples.test2.main(test2.java:26)
这是我的代码:
ArrayList<String> data = new ArrayList<String>();
String str1 = "{{1,2,3},{4,5,6},{7,8,9}}";
String[] arrOfStr1 = str1.split("[{}]");
//System.out.println(arrOfStr[2].length());
for (String a1 : arrOfStr1){
data.add(a1);
System.out.println(a1);
}
data.removeIf(n -> (n.charAt(0)) == ',');
你得到 StringIndexOutOfBoundsException 因为你的 arrOfStr1 数组中有一些空字符串。 n.charAt(0) 表达式导致异常,因为某些字符串中没有字符。在尝试删除单个逗号之前,请使用调试器查看 data 数组中的真实内容。
无论如何,这是解决方法,修改代码中的一行:
data.removeIf(n -> n.equals("") || ( n.charAt(0)) == ',');
顺便说一句,您也可以使用 Streams。整个代码也可以是这样的:
String str1 = "{{1,2,3},{4,5,6},{7,8,9}}";
List<String> data = Arrays.stream(str1.split("[{}]"))
.filter(n -> !n.equals("") && ( n.charAt(0)) != ',')
.collect(Collectors.toList());
我这里有字符串
String str1 = "{{1,2,3},{4,5,6},{7,8,9}}"
我期望的结果是这样的
{1,2,3}
{4,5,6}
{7,8,9}
我在 java 语言中使用什么方法? 谢谢。
我尝试使用拆分方法,然后将每个数组放入数组列表变量“data”中。 结果:
1,2,3
,
4,5,6
,
7,8,9
并尝试删除只有字符串值","的空数据数组,结果:
1,2,3
,
4,5,6
,
7,8,9
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.base/java.lang.StringLatin1.charAt(StringLatin1.java:48)
at java.base/java.lang.String.charAt(String.java:712)
at io.jhdf.examples.test2.lambda[=12=](test2.java:26)
at java.base/java.util.ArrayList.removeIf(ArrayList.java:1672)
at java.base/java.util.ArrayList.removeIf(ArrayList.java:1660)
at io.jhdf.examples.test2.main(test2.java:26)
这是我的代码:
ArrayList<String> data = new ArrayList<String>();
String str1 = "{{1,2,3},{4,5,6},{7,8,9}}";
String[] arrOfStr1 = str1.split("[{}]");
//System.out.println(arrOfStr[2].length());
for (String a1 : arrOfStr1){
data.add(a1);
System.out.println(a1);
}
data.removeIf(n -> (n.charAt(0)) == ',');
你得到 StringIndexOutOfBoundsException 因为你的 arrOfStr1 数组中有一些空字符串。 n.charAt(0) 表达式导致异常,因为某些字符串中没有字符。在尝试删除单个逗号之前,请使用调试器查看 data 数组中的真实内容。
无论如何,这是解决方法,修改代码中的一行:
data.removeIf(n -> n.equals("") || ( n.charAt(0)) == ',');
顺便说一句,您也可以使用 Streams。整个代码也可以是这样的:
String str1 = "{{1,2,3},{4,5,6},{7,8,9}}";
List<String> data = Arrays.stream(str1.split("[{}]"))
.filter(n -> !n.equals("") && ( n.charAt(0)) != ',')
.collect(Collectors.toList());