我在一些我想優化的代碼中發現了這個。 這裏是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