如何将 String 转换成 HTML 可读的 ASCII 字符
How to convert String into HTML readable ASCII character
我正在尝试将 Java 字符串转换为 HTML 可读代码。
例如:H e l l o W o r l d as H e l l o W o r l d
到目前为止我做了什么:
private static String convertToAscii(String str) {
for(int i=0; i<str.length(); i++) {
str += "&#"+(int)str.charAt(i);
}
return str;
}
它花费了太多时间,而且处理器风扇发出噪音。
提前致谢
这张 gif 并不能完美地呈现这里发生的事情,但它包含了基本思想
这里...
for(int i=0; i<str.length(); i++)
...您正在遍历名为 str
.
的字符串
但是这里...
str += ...
...您正在 添加 到 str.
您正试图到达 str 的末尾,但您实际上是在为每个循环添加到 str。您已经创建了一个无限循环。
添加到不同的字符串。像这样。
private static String convertToAscii(String str) {
String output = "";
for(int i=0; i<str.length(); i++) {
output += "&#"+(int)str.charAt(i);
}
return output;
}
你也可以这样做:
private static String convertToAscii(String str) {
return str
.chars()
.boxed()
.reduce("", (subRes, currVal) -> subRes + "&#" + currVal + ";" , (subVal, mappedVal) -> subVal + "" + mappedVal);
Java >= 8
更快
我正在尝试将 Java 字符串转换为 HTML 可读代码。
例如:H e l l o W o r l d as H e l l o W o r l d
到目前为止我做了什么:
private static String convertToAscii(String str) {
for(int i=0; i<str.length(); i++) {
str += "&#"+(int)str.charAt(i);
}
return str;
}
它花费了太多时间,而且处理器风扇发出噪音。
提前致谢
这张 gif 并不能完美地呈现这里发生的事情,但它包含了基本思想
这里...
for(int i=0; i<str.length(); i++)
...您正在遍历名为 str
.
但是这里...
str += ...
...您正在 添加 到 str.
您正试图到达 str 的末尾,但您实际上是在为每个循环添加到 str。您已经创建了一个无限循环。
添加到不同的字符串。像这样。
private static String convertToAscii(String str) {
String output = "";
for(int i=0; i<str.length(); i++) {
output += "&#"+(int)str.charAt(i);
}
return output;
}
你也可以这样做:
private static String convertToAscii(String str) {
return str
.chars()
.boxed()
.reduce("", (subRes, currVal) -> subRes + "&#" + currVal + ";" , (subVal, mappedVal) -> subVal + "" + mappedVal);
Java >= 8
更快