我使用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
}
}