如何将 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 &#x48 &#x65 &#x6c &#x6c &#x6f &#x57 &#x6f &#x72 &#x6c &#x64

到目前为止我做了什么:

    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

更快