在 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"
。
您可以使用 Matcher
在 String
中查找您的所有电子邮件,然后 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;
}
从服务器 "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"
。
您可以使用 Matcher
在 String
中查找您的所有电子邮件,然后 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;
}