我在搜索后突出显示文本视图中的文本,并用此代码替换。
txtV.setText(Html.fromHtml((text.replaceAll("(?i)"
+ searchText,"<font color='#53f721'>" + searchText + "</font>")));
但所有大写字符都被小写取代。我希望大写字符被大写取代,小写字符被小写取代。
提前谢谢。
发布于 2019-04-07 06:55:56
实际上,您正在用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);
发布于 2019-04-07 07:04:35
您可以通过以下方式使用正则表达式能力:
txtV.setText(Html.fromHtml((text.replaceAll("(?i)"
+ searchText,"<font color='#53f721'>$0</font>")));
https://stackoverflow.com/questions/55559767
复制