簡體   English   中英

Java按逗號分隔包含空格的字符串

[英]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是一個遺留類,出於兼容性原因保留了它,盡管在新代碼中不鼓勵使用它。 建議任何尋求此功能的人改用Stringsplit方法或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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM