搜索后,我将突出显示文本视图中的文本,并替换为此代码。
txtV.setText(Html.fromHtml((text.replaceAll("(?i)"
+ searchText,"<font color='#53f721'>" + searchText + "</font>")));
但是所有大写字符都被小写字母替换。 我希望将大写字符替换为大写字母,并将小写字符替换为小写字母。
谢谢。
答案 0 :(得分:0)
实际上,您是用searchText
替换原始文本,并且通过使用(?i)
替换功能不区分大小写。
如果我想这样做,我更喜欢像下面这样使用SpannableString:
String originalText = "Your original text";
Spannable wordToSpan = new SpannableString(originalText);
originalText = originalText.toLowerCase();
searchText = searchText.toLowerCase();
int length = searchText.length();
int index = originalText.indexOf(searchText);
while (index >= 0) {
wordToSpan.setSpan(new ForegroundColorSpan(Color.BLUE), index, index + length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
index = originalText.toLowerCase().indexOf(searchText, index + length);
}
txtV.setText(wordToSpan);
答案 1 :(得分:0)
您可以通过以下方式使用正则表达式功能:
txtV.setText(Html.fromHtml((text.replaceAll("(?i)"
+ searchText,"<font color='#53f721'>$0</font>")));