Android BreakIterator连字符?

时间:2015-02-14 03:21:32

标签: android regex textview

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

1 个答案:

答案 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
   }
}