安卓最接近字符或词尾

  • 本文关键字:字符 最接近 android
  • 更新时间 :
  • 英文 :


我使用indexof()来查找特定字符的长度,然后用不同的颜色给它上色。我可以使用indexof()从字符开始着色,这很好,但我不能以单词结束。

if(title.contains("x")){
    SpannableString WordtoSpan = new SpannableString(title);        
    WordtoSpan.setSpan(new ForegroundColorSpan(Color.RED), title.indexOf("x"), title.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    holder.txtTitle.setText(WordtoSpan);
} else {
    holder.txtTitle.setText(title);
}

现在,如果它包含字符x,它将用它找到的第一个x中的红色给它上色。但它要到最后一根我不喜欢的绳子才会结束。

我希望它以x开头的单词结尾。

例如现在:(粗体为红色atm)

我喜欢x男和巧克力

我想要的是:

我喜欢x-man和巧克力。

我该如何做到这一点?

您必须找到单词的结尾,而不是简单地传递length();

考虑一种更健壮的算法来查找单词分隔符(即包含制表符),在这个例子中,我只找到第一个空白

    String s = "I love x-man and chocolate.";
    int idx = s.indexOf("x");
    if (idx >= 0) {
        int wordEnd = s.indexOf(" ", idx);
        if (wordEnd < 0) {
            wordEnd = s.length();
        }
        WordtoSpan.setSpan(new ForegroundColorSpan(Color.RED),
                    idx,
                    wordEnd,
                    Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    }

最新更新