如何在不留空字符串的情况下拆分String?

时间:2017-03-07 00:48:42

标签: java regex string

我正在尝试拆分一个包含两个数字的字符串,可能还有一个类似于:

的字母
(2,3) (2,6) p (8,5) p (5,6)

我在尝试:

String inputTokens = input.split([(),\\s]);

但是在令牌数组中留下了一堆空字符串。如何阻止它们首先出现?

澄清:空字符串是指一个不包含任何内容的字符串,甚至不包含空格

2 个答案:

答案 0 :(得分:2)

String inputTokens[] = input.split("[(),\\s]+");

这会将空格作为正则表达式的一部分读取,因此数组中不会有空条目。

答案 1 :(得分:1)

将“一次或多次”贪婪量词添加到角色类:

String[] inputTokens = input.split("[(),\\s]+");

这将导致一个前导空字符串,这在使用split()方法并分离字符串的立即开始时是不可避免的,否则没有空字符串。