我這里有字串
String str1 = "{{1,2,3},{4,5,6},{7,8,9}}"
我期望的結果是這樣的
{1,2,3}
{4,5,6}
{7,8,9}
我在java語言中使用什么方法?謝謝。
我嘗試使用 split 方法,然后將每個陣列放入一個陣列串列變數“資料”中。結果 :
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$0(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)) == ',');
uj5u.com熱心網友回復:
你得到StringIndexOutOfBoundsException是因為你的arrOfStr1陣列中有一些空字串。所述n.charAt(0) ,因為在某些字串沒有字符表達導致例外。在嘗試洗掉單個逗號之前,使用除錯器查看資料陣列中的真實內容。
無論如何,這是修復,修改代碼中的一行:
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());
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/364880.html
上一篇:根據給定的索引替換陣列的某些元素
下一篇:將陣列拆分為多個陣列
