繁体   English   中英

从 String.split 的连续分隔符中删除空字符串?

[英]Removing empty string from consecutive delimiter for String.split?

我有一个简单的程序可以通过正则表达式拆分字符串,如下所示:

public class Main
{
    public static void main(String[] args) {
        String regex = "\\{|\\}|\\+";
        String input = "F-{0000}a{yy}{mm}";

        String [] splitInput = input.split(regex);


        for(int i = 0; i < splitInput.length; i++) {
            System.out.println("Value: " + splitInput[i]);
        }

    }
}

它打印

Value: 0 A-                                                                                                                                                                                                                                       
Value: 1 0000                                                                                                                                                                                                                                     
Value: 2 a                                                                                                                                                                                                                                        
Value: 3 yy                                                                                                                                                                                                                                       
Value: 4                                                                                                                                                                                                                                          
Value: 5 mm  

我只是想要它,以便我的拆分字符串不包含作为空字符的value 4 我知道这是因为}{背靠背。 我相信我的正则表达式只是说在{}上拆分,我认为+会在连续的分隔符上拆分,但情况似乎并非如此。 有任何想法吗?

您的正则表达式不正确,它将在{}+上拆分。 您想要的是拆分一个或多个{} ,您可以使用字符类执行此操作:

String regex = "[{}]+";

雷克斯特演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM