我使用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
}
}
答案 0 :(得分:1)
正如我在你的代码中看到的,你要做的是检查每个单词中的第一个字符是字符还是数字。每次使用BreakIterator.getWordInstance()时,您总是会根据Locale的边界规则获取所有单词,并且在我知道之前使用此类有点难以完成您想要做的事情,所以我的建议是这样的:
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
}
}