当前位置: 首页 > 面试题库 >

Java转义HTML-字符串替换慢吗?

孙熠彤
2023-03-14
问题内容

我有一个Java应用程序,该应用程序大量使用大文件来读取,处理和传递给SolrEmbeddedServer(http://lucene.apache.org/solr/)。

其中一个功能可以进行基本的HTML转义:

private String htmlEscape(String input)
{
    return input.replace("&", "&amp;").replace(">", "&gt;").replace("<", "&lt;")
        .replace("'", "&apos;").replaceAll("\"", "&quot;");
}

在对应用程序进行性能分析时,程序在此功能上花费大约58%的时间,总共47%的时间用于替换,而11%的时间用于replaceAll。

现在,是用Java替换程序速度这么慢吗?还是我走的路正确?我是否应该考虑该程序的效率,使其在Java中而不是在我的代码中成为瓶颈?(或者我要替换错吗?)

提前致谢!


问题答案:

对于HTML转义,您可以使用StringEscapeUtils.escapeHtml(input)从公浪。据说在那里可以更有效地实现它。



 类似资料:
  • 转义一个字符串,以用于HTML。 使用带有正则表达式的 String.replace() 来匹配需要转义的字符,使用一个回调函数使用字典(对象)替换每个字符为器关联的 HTML 实体字符。 const escapeHTML = str => str.replace( /[&<>'"]/g, tag => ({ '&': '&amp;',

  • 问题内容: 我有一个以字符串形式传递的句子,我正在对单词“ and”进行替换,我想用“”替换它。而且它不是用空格替换“和”一词。以下是我的逻辑示例。而当我调试此逻辑时,逻辑确实落入了句子。 这里有我想念的东西吗? 问题答案: 而当我调试此逻辑时,逻辑确实落入了句子。 是的,然后你放弃返回值。 Java中的字符串是不可变的-当你调用时,它不会更改现有字符串的内容-它会返回经过修改的新字符串。所以你要

  • 主要内容:replace() 方法,replaceFirst() 方法,replaceAll() 方法在 Java 中,String 类提供了 3 种字符串替换方法,分别是 replace()、replaceFirst() 和 replaceAll(),本文将详细介绍它们的使用方法。 replace() 方法 replace() 方法用于将目标字符串中的指定字符(串)替换成新的字符(串),其语法格式如下: 其中,oldChar 表示被替换的字符串;newChar 表示用于替换的字符串。repla

  • 本文向大家介绍替换Java字符串中的子字符串,包括了替换Java字符串中的子字符串的使用技巧和注意事项,需要的朋友参考一下 假设以下是我们的字符串。 我们想将子字符串“ Dead”替换为“ Alive”。为此,让我们使用以下逻辑。在这里,我们使用了while循环,并在其中找到了要替换的子字符串的索引。这样,我们一个接一个地替换了整个子字符串。 以下是替换子字符串的完整示例。 示例 输出结果

  • 我想使用方法发送POST请求,但是我的JSON有一些国际字符,比如surunn。 不幸的是,我的WebAPI在从格式解码这个字符串时遇到了一些问题:。 使用时,我的API可以很好地处理非转义字符串和unicode转义字符串:。 我尝试了此操作,但在将转换为unicode后,转义了: 我有两个反斜杠字符串: 我试图用一个反斜杠替换两个反斜杠,但没有成功: 我该如何替换它们?

  • 假设有一段文本里面有很多错误,如错别字。现在使用 Java 中的字符串替换方法对它进行批量修改和纠正,其中就用到了我们在《 Java字符串的替换》一节中学到的 String 类的 replace() 方法、replaceFirst() 方法和 replaceAll() 方法。 创建一个 Java 类,然后在主方法 main() 中编写代码,具体代码如下所示。 运行该程序,输出的正确字符串内容如下: