将大写字母替换为大写字母,并将小写字母替换为小写字母

时间:2019-04-07 14:01:39

标签: android android-layout

搜索后,我将突出显示文本视图中的文本,并替换为此代码。

 txtV.setText(Html.fromHtml((text.replaceAll("(?i)" 
    + searchText,"<font color='#53f721'>" + searchText + "</font>")));

但是所有大写字符都被小写字母替换。 我希望将大写字符替换为大写字母,并将小写字符替换为小写字母。

谢谢。

2 个答案:

答案 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>")));