如何使用多个分隔符并且没有可用的空格分隔java中的字符串?

时间:2016-09-17 07:14:28

标签: java lexer

我如何在java中分离这样的字符串? 行情不是分开的。以下代码与println完全是一个字符串。我需要像输出一样将它分成令牌。

println "How are you",Sir, "Hope you are doing good","?"

注意:你之间没有空格,等等。 输出:

println
"how are you"
,
Sir
,
"Hope you are doing good"
,
"?"

1 个答案:

答案 0 :(得分:0)

不知道它是否已经过优化,但它会给你想要的结果。

Pattern pattern = Pattern.compile("(\"[^\"]*\")|(\\w+)|(,)");
        Matcher matcher = pattern.matcher(string);
        while(matcher.find()){
            if(matcher.group(2)!=null)
            System.out.println(matcher.group(2));
            if(matcher.group(1)!=null)
            System.out.println(matcher.group(1));
            if(matcher.group(3)!=null)
            System.out.println(matcher.group(3));
        }