我在一些我想优化的代码中发现了这个。 这里是snipet:这是一个正常的Java正则表达式行为吗?
tempString = bigBuffer.replaceAll("\\n", "");
tempString = tempString.replaceAll("\\t", "");
然后,我决定明智地使用正则表达式和我这样做:
tempString = bigBuffer.replaceAll("[\\n\\t]", "");
后来朋友告诉我,做这个:
tempString = bigBuffer.replaceAll("\\n|\\t", "");
由于我想知道我的更改的结果,我做了一个测试来验证它是否是一个很好的优化。所以,(java版本“1.6.0_27”)的结果是第一个代码是引用100%。
随着管道它是121%,所以它需要更多的时间来执行任务。
用方括号表示它是52%,因此执行该任务所用的时间较少。
为什么正则表达式应该是相同的?
马丁
为什么它应该是相同的? – BoltClock
我认为它应该是相同的,因为它做同样的事情。当管道使用单个字符时,编译器可能需要优化。 – Martin