当我用\\ s分割我的字符串时,为什么我的单词是一个空字符串

时间:2013-10-22 02:49:07

标签: java regex string

我有一个字符串

String text = "Good morning. Have a good class. "
               + "Have a good visit. Have fun!";

我把它分开了:

String[] words = text.split("[\\s\\n\\t\\r.,;:!?(){}]");

遍历数组以获得word

word = words[i];

我正在尝试获取单词出现的列表。我打印列表,我得到了这个:

 [morning:1, class:1, visit:1, fun:1, a:2, good:3, :3, have:3]

 **// I have three Obvious empty Strings somewhere ^^ According the :3

所以我添加System.out.print(word ", ")并获取此信息:

good, morning, , have, a, good, class, , have, a, good, visit, , have, fun,

    // space ^^                 space^^                 space^^

为什么我会得到这些空格,我该如何纠正呢?

1 个答案:

答案 0 :(得分:7)

你在方括号中每次出现的字符都会分开。而是将其更改为:"[\\s\\n\\t\\r.,;:!?(){}]+"最后+非常重要,并允许多个元素合并为单个分隔符。