【问题标题】:How to convert String into HTML readable ASCII character如何将字符串转换为 HTML 可读的 ASCII 字符
【发布时间】:2021-04-24 07:13:06
【问题描述】:

我正在尝试将 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;
    }

它花费了太多时间加上处理器风扇发出噪音。

提前致谢

【问题讨论】:

    标签: java character ascii


    【解决方案1】:

    这个 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;
       
       }
       
    

    【讨论】:

    • 如果你没听懂这个笑话,一旦 Gromit 的箱子用完火车轨道可以放下,他就会像你一样收到 StackOverflow 错误。
    • @davidalayachew:他会得到一个OutOfMemoryError (OutOfTrainTracksError?),因为这里没有递归发生。
    【解决方案2】:

    你也可以这样做:

    private static String convertToAscii(String str) { 
        return str     
                  .chars() 
                  .boxed()
                  .reduce("", (subRes, currVal) -> subRes + "&#" + currVal + ";" , (subVal, mappedVal) -> subVal + "" + mappedVal);
    

    Java 速度更快 >= 8

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-17
      • 1970-01-01
      • 2018-11-05
      • 1970-01-01
      • 2010-12-09
      相关资源
      最近更新 更多