我上一个问题的扩展:
文本清理和替换:从Java中的文本中删除\n
我正在清理这个来自具有不规则文本的数据库的传入文本.这意味着,没有标准或规则.有些包含像®,&trade,<等HTML字符,其他的有这种形式:”,–等.其他时候我只用<和>获取HTML标签.
我正在使用String.replace来替换字符的含义(这应该没问题,因为我正在使用UTF-8吗?),并且replaceAll()用正则表达式删除HTML标记.
除了为每个替换调用replace()函数以及编译HTML标记正则表达式之外,是否有任何建议使这种替换有效?
我的第一个建议是测量最简单的方法(可能是多次替换/替换所有调用)的性能.是的,它可能效率低下.通常,最简单的方法是效率低下.你需要问自己:你关心多少?
您是否有可以接受性能的样本数据和阈值?如果你不这样做,那就是第一个停靠港.然后测试天真的实现,看看它是否真的是一个问题.(记住,字符串替换几乎可以肯定只是一部分,你在做什么.当你获取从数据库文本入手,这可能也最终成为了瓶颈.)
一旦你确定替换确实是瓶颈,那么值得进行一些测试以确定替换的哪些位导致了最大的问题 - 听起来你正在进行几种不同的替换.你越能缩小范围越好:你可能会发现最简单的代码中的真正瓶颈是由一些容易以一种相当简单的方式提高效率的东西引起的,而试图优化一切将会困难得多.