【问题标题】:Adding HTML tags around text in Java在 Java 中的文本周围添加 HTML 标记
【发布时间】:2016-01-28 10:11:34
【问题描述】:

从服务器"Hello, my e-mail email@email.com write here please" 获取字符串。 需要用 HTML 标签包围电子邮件并制作这样的字符串

"Hello, my e-mail <a href="mailto:email@email.com">email@email.com</a> write here please"

如何在 Java 中实现它? 我需要这样做,因为我需要将格式化的字符串粘贴到TextView.setText(Html.fromHtml())

【问题讨论】:

标签: java android string replace string-parsing


【解决方案1】:

您可以在 TextView xml 标签上添加android:autoLink="email"

【讨论】:

    【解决方案2】:

    您可以使用MatcherString 中查找所有电子邮件,然后使用replaceAll 编辑您的String,如下所示:

    yourString = getHtmlString(yourString);
    
    private String getHtmlString(String s) {
        List<String> emails = getEmailsFromString(s);
    
        if (emails.size() < 1) {
            return s;
        }
    
        String result = s;
    
        for (String email : emails) {
            String toReplace = "<a href=\"" + email + "\">email@email.com</a>";
            result.replaceAll(email, toReplace);
        }
    
        return result;
    }
    
    private List<String> getEmailsFromString(String s) {
        List<String> emails = new ArrayList<>();
        Matcher m = Pattern.compile("[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+").matcher(s);
        while (m.find()) {
            emails.add(m.group());
        }
    
        return emails;
    }
    

    【讨论】:

      猜你喜欢
      • 2017-04-02
      • 2012-02-23
      • 2015-04-09
      • 1970-01-01
      • 2020-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多