[英]Java split by comma in string containing whitespace
我有一個下面的字符串,我只想用','分割,還想分隔第三個索引,即每行的(1005,111222)。
1002,USD,04/09/2019,1005,1,cref,,,,,,,,,
1001,USD,11/04/2018,111222,10,reftpt001,SHA,Remittance Code,BCITIT31745,,,RTGS,,,,
我在下面使用代碼:
List<String> elements = new ArrayList<String>();
List<String> elements2 = new ArrayList<String>();
StringTokenizer st = new StringTokenizer((String) object);
while(st.hasMoreTokens()) {
String[] row = st.nextToken().split(",");
if (row.length == 5) {
elements.add(row[3]);
}
if (row.length == 12) {
elements2.add(row[3]);
}
}
在上面的字符串中,“ Remittance Code
”之間有一個空格,但一直拆分到remittance
為止,之后,它會將代碼計算為新的行或字符串。 請告知我如何跳過空白。
這里顯然不需要StringTokenizer
,並且nextToken()
調用在第一個空格處停止。 相反,我建議像這樣直接調用output.split(",")
String[] row = ((String) object).split("\\s*,\\s*", -1);
刪除StringTokenizer
, 注意 JavaDoc明確指出StringTokenizer
是一個遺留類,出於兼容性原因保留了它,盡管在新代碼中不鼓勵使用它。 建議任何尋求此功能的人改用String
的split
方法或java.util.regex包。
首先可以拆分,然后使用修剪操作
String stringToSplit= "1001,ZAR,11/04/2018,111222,10,reftpt001,SHA,Remittance Code,BCITIT31745,,,RTGS,,,,";
StringTokenizer tokenizer = new StringTokenizer(stringToSplit, ",");
while (tokenizer.hasMoreTokens()) { System.out.println(tokenizer.nextToken()); }
輸出:
1001 ZAR 2018年11月4日111222 10 reftpt001 SHA匯款代碼BCITIT31745 RTGS
我嘗試使用以下代碼:
第一種方法:
String str = "1001,ZAR,11/04/2018,111222,10,reftpt001,SHA,Remittance Code,BCITIT31745";
String[] words = str.split(",");
for(String word : words) {
System.out.println(word);
}
第二種方法:
String str = "1001,ZAR,11/04/2018,111222,10,reftpt001,SHA,Remittance Code,BCITIT31745";
StringTokenizer tokenizer = new StringTokenizer(str, ",");
while(tokenizer.hasMoreTokens())
{
System.out.println(tokenizer.nextToken());
}
輸出:
11/04/2018
111222
10
reftpt001
SHA
Remittance Code
BCITIT31745
希望這對您有所幫助。 :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.