gpt4 book ai didi

java - 在 Java 中将纯文本转换为 HTML 文本

转载 作者:太空狗 更新时间:2023-10-29 22:49:44 30 4
gpt4 key购买 nike

我有 java 程序,它将从服务器接收纯文本。纯文本可能包含 URL。 Java 库中是否有任何类可以将纯文本转换为 HTML 文本?或者其他图书馆?如果没有那么解决方案是什么?

最佳答案

您应该以编程方式对文本进行一些替换。这里有一些线索:

  • 所有换行符都应转换为 "<br>\n" (\n 是为了提高输出的可读性)。
  • 应该删除所有 CR(无论如何使用 DOS 编码)。
  • 所有空格对都应替换为" &nbsp;"
  • 将“<”替换为"&lt;"
  • 将“&”替换为"&amp;"
  • 所有其他字符 < 128 应保留原样。
  • 所有其他字符 >= 128 应写为 "&#"+((int)myChar)+";" , 使它们在每种编码中都可读。
  • 要自动检测您的链接,您可以使用正则表达式,例如 "http://[^ ]+" , 或 "www.[^ ]"并像 JB Nizet 所说的那样转换它们。至 "<a href=\""+url+"\">"+url+"</a>" ,但只有在完成所有其他替换之后。

执行此操作的代码如下所示:

public static String escape(String s) {
StringBuilder builder = new StringBuilder();
boolean previousWasASpace = false;
for( char c : s.toCharArray() ) {
if( c == ' ' ) {
if( previousWasASpace ) {
builder.append("&nbsp;");
previousWasASpace = false;
continue;
}
previousWasASpace = true;
} else {
previousWasASpace = false;
}
switch(c) {
case '<': builder.append("&lt;"); break;
case '>': builder.append("&gt;"); break;
case '&': builder.append("&amp;"); break;
case '"': builder.append("&quot;"); break;
case '\n': builder.append("<br>"); break;
// We need Tab support here, because we print StackTraces as HTML
case '\t': builder.append("&nbsp; &nbsp; &nbsp;"); break;
default:
if( c < 128 ) {
builder.append(c);
} else {
builder.append("&#").append((int)c).append(";");
}
}
}
return builder.toString();
}

但是,链接转换尚未添加。如果有人这样做,请更新代码。

关于java - 在 Java 中将纯文本转换为 HTML 文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5134959/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com