![]() |
1
12
我发现org.apache.commons.lang.StringUtils是最快的,如果你不想使用StringBuffer的话。
你可以这样使用它:
我做了性能测试,它比我定制的StrinBuffer解决方案更糟糕,类似于@extraneon提出的解决方案。 |
![]() |
2
6
看起来你在那里解析HTML,你有没有想过使用 3rd party library 而不是重新发明轮子? |
![]() |
3
4
我同意Martijn使用一个现成的解决方案,而不是自己解析它-javax.xml包中有很多东西内置到Java中。一个好的解决方案是使用XSLT转换来替换,这看起来是一个理想的用例。然而,这是复杂的。
为了回答这个问题,你考虑过使用
regular expression libraries
? 看起来您有许多不同的东西要匹配,并替换为相同的东西(\n或空字符串)。使用正则表达式可以是
|
![]() |
4
3
我完全同意马蒂金的观点。为工作选择合适的工具。 但是,如果您的文件不是HTML,而是只包含一些HTML标记,那么有几种方法可以加快速度。 首先,如果某些输入量不包含可替换元素,请考虑从以下内容开始:
其次,考虑regex:
不要为每一行replaceAll创建一个模式,而是尝试将它们组合起来(regex有一个OR运算符),让模式优化regex。使用 编译的 模式,而不是在每次调用中编译它,它相当昂贵。 如果regex有点复杂,您也可以自己实现一些更快(但可能不太可读)的替换引擎:
这可能有一些错误:) 这样做的好处是您只需遍历输入一次。最大的缺点是它不太容易理解。你也可以写一个状态机,分析每个字符的新状态应该是什么,这可能会更快,甚至更多的工作。 |
|
user29759326 · 如何返回递归函数中的最后一个值? 4 月前 |
|
malife89 · 将java中的字符串读取为正确的日期格式 4 月前 |
![]() |
Tim · 在java中,有没有更快的方法将字节数组写入文件? 4 月前 |
![]() |
rudraraj · java中未声明最终变量 5 月前 |
![]() |
Bala Ji · 以下BFS的实施效率如何? 5 月前 |