【问题标题】:How to remove &nbsp from TextView如何从 TextView 中删除 &nbsp
【发布时间】:2012-11-29 23:02:35
【问题描述】:

我需要用TextView 替换&nbps。我可以简单地使用String.replace(),但可能有更好的解决方案?

【问题讨论】:

  • String.replace() 是摆脱这些问题的唯一方法 :)
  • 你可以设置 Html.fromHtml(string) 为 textview 并检查。
  • Html.fromHtml(String) 非常适合我,请回答以便我接受。
  • 除非您尝试解释其他 HTML,否则使用fromHtml()  替换为空格就像用别克拍苍蝇一样。 replaceAll() 应该更便宜。

标签: android


【解决方案1】:

尝试使用 Pattern.compile:

Pattern p = Pattern.compile("&nbps");
String tempstr = "I love &nbps  &nbps.";

Matcher matcher = p.matcher(tempstr);
String tmp = matcher.replaceAll("Android");

你可以看到这篇关于 String.replace 和 matcher.replace 性能的帖子

String replaceAll() vs. Matcher replaceAll() (Performance differences)

【讨论】:

  • 那么String.replace() 在性能方面有何不同?
  • @AliImran:我现在不关心这段代码的性能,但我相信这在所有情况下都有效
  • 这是另一种替换当前字符串中子字符串的方法
  • 我以前知道这一点,但我从不优先考虑简单的String.replace() 方法:)
  • 你是对的,因为有时String.replace() 不能正常工作。
【解决方案2】:

尝试使用这个功能:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
            mDescription.setText(Html.fromHtml("Your Text", Html.FROM_HTML_MODE_LEGACY));
        } else {
            mDescription.setText(Html.fromHtml("Your Text"));
        }

【讨论】:

    猜你喜欢
    • 2014-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-01
    相关资源
    最近更新 更多