使用java正则表达式删除空行

使用java正则表达式删除空行,java,regex,Java,Regex,我有一个有趣的字符串,我想正确地分解成一个字符串数组。这个字符串如下所示 String test="?[32,120],x1y1,[object pieceP1],null]"; 现在我有了一个正则表达式来解决这个问题 String delims = "[?,\\[\\]]"; 现在,使用此代码拆分它的结果 String[] tokens = mapString.split(delims); 产生这个结果 --> --> 32 120 --> x1y1 --> 对象片段1 --> 空 其中

我有一个有趣的字符串,我想正确地分解成一个字符串数组。这个字符串如下所示

String test="?[32,120],x1y1,[object pieceP1],null]";
现在我有了一个正则表达式来解决这个问题

String delims = "[?,\\[\\]]";
现在,使用此代码拆分它的结果

String[] tokens = mapString.split(delims);
产生这个结果

-->
-->
32
120
-->
x1y1
-->
对象片段1
-->

其中箭头为空行

如何修改此正则表达式,使其不存在空行

提前非常感谢你


~Selcuk

您可以使用谷歌番石榴的
拆分器
类来实现:


Splitter.ommiteEmptyStrings()
应该可以完成这项工作。

您可以使用Google Guava的
Splitter
类来实现:

Splitter.ommitEmptyStrings()
应该可以完成这项工作。

试试这个

public class Regex 
{
    public static void main(String[] args) 
    {
        String []split = "?[32,120],x1y1,[object pieceP1],null]".split("([?,\\[\\]])+");
        for (int i = 0; i < split.length; i++) {
            System.out.println("'"+split[i]+"'");
        }
    }
}
试试这个

public class Regex 
{
    public static void main(String[] args) 
    {
        String []split = "?[32,120],x1y1,[object pieceP1],null]".split("([?,\\[\\]])+");
        for (int i = 0; i < split.length; i++) {
            System.out.println("'"+split[i]+"'");
        }
    }
}
String delims=“[?,\[\\]]+”/[]+

但是前面的空元素仍然存在。

字符串delims=“[?,\\[\]]+”/[]+

但是前面的空元素仍然存在