我使用breakIterator从一个句子中获取每个单词,当像“我的岳母来拜访”这样的句子时,我无法将岳母作为一个单词来获取问题。

BreakIterator iterator = BreakIterator.getWordInstance(Locale.ENGLISH);
for (int end = iterator.next(); end != BreakIterator.DONE; start = end, end = iterator.next())
{
        String possibleWord = sentence.substring(start, end);
        if (Character.isLetterOrDigit(possibleWord.charAt(0)))
        {
            // grab the word
        }
}

最佳答案

正如我在您的代码中看到的那样,您想要做的是检查每个单词中的第一个字符是字符还是数字。每次使用BreakIterator.getWordInstance()时,总是会根据语言环境的边界规则获得所有单词,并且很难理解使用此类的目的,直到我知道为止,所以我建议是这样的:

String text = "my mother-in-law is coming for a visit";
String[] words = text.split(" ");
for (String word : words){
   if (Character.isLetterOrDigit(word.charAt(0))){
      // grab the word
   }
}

07-24 09:48