首页 > 解决方案 > Java 在包含空格的字符串中用逗号分隔

问题描述

我有一个下面的字符串,我只想用 ',' 分割它,并且还想分隔每行的第三个索引,即 (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和之后,它将代码计算为一个新的行或字符串。请告知我如何才能跳过空白。

标签: javasplit

解决方案


这里没有明显的需要StringTokenizer,并且nextToken()呼叫在第一个空格处停止。相反,我建议output.split(",")直接打电话

String[] row = ((String) object).split("\\s*,\\s*", -1);

并删除StringTokenizer注意JavaDoc 明确表示StringTokenizer是一个遗留类,出于兼容性原因保留,尽管不鼓励在新代码中使用它。建议任何寻求此功能的人改用java.util.regex 包的split方法或包。String


推荐阅读