在 Java 中的文本周围添加 HTML 标签

Adding HTML tags around text in Java

从服务器 "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())

中粘贴格式化的字符串

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

您可以使用 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;
}