0

因此,我一直在互联网上搜索 4 个多小时以寻找有关如何执行此操作的线索,但我找不到一种方法来做我想做的所有事情。我想要的是输入这个(例如):

  word1 !  ?? word2 word3 ..   .. word4, word5, word6 !?. word7 !! !
word8 word9 ?
. word10

然后 match .!?以任何顺序和中间的任何空格,以便它返回我:

["word1", "word2 word3", "word4, word5, word6", "word7", "word8 word9", "word10"]

值得一提的是我想String.split()用于此目的,但任何其他更有效/更简单的方法都会非常受欢迎!

4

2 回答 2

4

你可以试试这个方法

String data="word1 !  ?? word2 word3 ..   .. word4, word5, word6 !?. word7 !! !" +
        "word8 word9 ?" +
        ". word10";
for (String s:data.split("\\s*([!?.]+\\s*)+")){
    System.out.println(s);
}

输出

word1
word2 word3
word4, word5, word6
word7
word8 word9
word10
于 2013-04-17T14:32:07.763 回答
2

尝试

    String s = "word1 !  ?? word2 word3 ..   .. word4, word5, word6 !?. word7 !! ! \n word8 word9 ?\n. word10";
    String[] a = s.split("(\\s*[!?.\n\r]+\\s*)+");
    System.out.println(Arrays.toString(a));

输出

[word1, word2 word3, word4, word5, word6, word7, word8 word9, word10]
于 2013-04-17T14:30:15.307 回答