1

我想知道Java中是否有任何方法可以通过空格标记字符串,但是如果撇号之间有一些单词,请将其视为“一个单词”......

例如,如果我有:

这是“伟大”的一天

字符串标记器应该有:

  • "This"
  • "is a great"
  • "day"

谢谢!

4

1 回答 1

2

使用String.split()和一个正则表达式,而不是一个StringTokenizer,怎么样:

    String input = "this \"is a great\" day";

    for (String  word: input.split("(?<=\").+(?=\")|\\b\\w+\\b"))
    {
        System.out.println("["+word+"]");
    }

输出:

[this]
[is a great]
[day]

从您的示例中,我假设您的意思是双引号(“)而不是撇号(')。

注意:我最初发布了一些更简单的东西,它适用于您的示例,但不适用于以下输入:

" yes this \"is a great\" day all right"
于 2012-03-04T23:24:57.593 回答