我有一个查询,它连接两列的值并返回一个字符串,如下所示:
423545(50),7568787(50),53654656,2021947(50),
现在我需要处理没有括号中值的单个数字。我可以重新运行另一个查询来检索值,但我认为拆分现有字符串而不是进行另一个数据库调用更有效。
如何拆分上面的字符串以删除括号中的值?我想将数字存储在ArrayList中。 arrayList将包含423545,7568787,53654656,2021947,(不带逗号)
请注意,并非所有列都具有括号内的值 - 请参阅第三列 字符串末尾可能有一个逗号。
如果只是逗号,我可以使用String.split()
拆分它,但我猜上面的格式需要正则表达式。
答案 0 :(得分:5)
String[] list = str.split("(\\(\\d+\\))?,");
请参阅 this demo 。
答案 1 :(得分:1)
首先用正则表达式删除所有括号及其值,然后在结果上拆分字符串。
答案 2 :(得分:1)
使用String.replaceAll(regex, replacement)查找括号中出现的所有数字,并将其替换为“”,然后拆分。