拆分非逗号分隔的字符串

时间:2012-11-26 13:27:03

标签: java regex string

我有一个查询,它连接两列的值并返回一个字符串,如下所示:

423545(50),7568787(50),53654656,2021947(50),

现在我需要处理没有括号中值的单个数字。我可以重新运行另一个查询来检索值,但我认为拆分现有字符串而不是进行另一个数据库调用更有效。

如何拆分上面的字符串以删除括号中的值?我想将数字存储在ArrayList中。 arrayList将包含423545,7568787,53654656,2021947,(不带逗号)

请注意,并非所有列都具有括号内的值 - 请参阅第三列 字符串末尾可能有一个逗号。

如果只是逗号,我可以使用String.split()拆分它,但我猜上面的格式需要正则表达式。

3 个答案:

答案 0 :(得分:5)

String[] list = str.split("(\\(\\d+\\))?,");

请参阅 this demo

答案 1 :(得分:1)

首先用正则表达式删除所有括号及其值,然后在结果上拆分字符串。

答案 2 :(得分:1)

使用String.replaceAll(regex, replacement)查找括号中出现的所有数字,并将其替换为“”,然后拆分。