Java用空格分隔条件

时间:2016-11-02 07:20:15

标签: java split

我想用白色空格分割字符串。但是,如果用引号括起单词,则将它们视为单个单词。

例如Word to split。我会得到wordtosplit

但如果 "word to" split我应该"word to"split。引号仍然存在。

2 个答案:

答案 0 :(得分:3)

这就是你想要的吗?

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TmpTest {
    public static void main(String args[]) {
        final String regex = "\".*?\"|\\b\\w+\\b";
        final String string = "\"word to\" split i should get \"word to2\", split.";

        final Pattern pattern = Pattern.compile(regex);
        final Matcher matcher = pattern.matcher(string);

        while (matcher.find()) {
            System.out.println("Full match: " + matcher.group(0));
        }
    }
}

demo

答案 1 :(得分:1)

以下是如何做到这一点:

String str = "\"word to\" split";

List<String> list = new ArrayList<String>();
Matcher m = Pattern.compile("([^\"]\\S*|\".+?\")\\s*").matcher(str);
while (m.find())
    list.add(m.group(1)); // Add .replace("\"", "") to remove surrounding quotes.


System.out.println(list);