在Java中解析带有多个分隔符的字符串

时间:2014-04-08 21:44:17

标签: java arrays string delimiter

我正在尝试将字符串加载到数组中,删除所有空格和标点符号。问题是,如果我连续有两个分隔符,它会在数组中留下一个空白。

我有什么:

String[] temparray =inputstr.split("\\s+|,|;|\\(|\\)|, ");

示例:

inputstr = "I bought bread, eggs, and milk"

输出为:

I
bought
bread

eggs

and
milk

任何人都知道如何在逗号加载到数组后保留空格?

2 个答案:

答案 0 :(得分:2)

您可以使用character class对所有分隔符进行分组

String[] temparray = inputstr.split("[\\s,;()]+");

答案 1 :(得分:1)

您可以将这两种情况合并为"逗号"和"逗号后跟空格"使用?元字符表示"可选"。

我已将,替换为, ?(逗号空格 - 问号)。这样,空间就可以作为分隔符的一部分进行匹配。

//                           space here ---v
String[] temparray = inputstr.split("\\s+|, ?|;|\\(|\\));

打印阵列的每个元素:

I
bought
bread
eggs
and
milk