如何为替换的字符串加下划线?

时间:2016-06-13 04:46:23

标签: java android replace

对于给定的字符串,我想为给定的单词/子字符串添加下划线。

例如,如果我有一个字符串Q1)Sun is a __ .,我想将其设为Q1)Sun is a _star_ .(其中_表示下划线的开头和结尾)。

我使用了以下代码,但它强调了TextView

的全文
 txtview.setPaintFlags(textview.getPaintFlags()| Paint.UNDERLINE_TEXT_FLAG);

我的代码:

edittext.addTextChangedListener(new TextWatcher() {
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int er) {

    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {

    }

    @Override
    public void afterTextChanged(Editable s) {
        txtview.setText(sen1.replace("__",s.toString());
    }
}

那么我将在编辑文本中编写,它将在文本视图中反映并将“__”替换为编辑文本中的字符串。 唯一的需要是更改的字符串应该是下划线,而不是整个文本视图。

2 个答案:

答案 0 :(得分:0)

试试这个

conda search

Demo GIF

答案 1 :(得分:0)

您当前的代码正在替换子字符串而不是单词。你可能不希望这样。

例如,如果将其应用于Mr. Wong is a starring character之类的字符串,则会为子字符串“star”加下划线。

如果你想这样做,你可以使用:

textview.setText(Html.fromHtml(
            yourString.replaceAll("star", "<u>star</u>")));

如果您想要替换确切的单词,可以使用:

textview.setText(Html.fromHtml(
            yourString.replaceAll("\\bstar\\b", "<u>star</u>")));