簡體   English   中英

string.replaceAll()性能是否受到字符串不變性的影響?

[英]Does string.replaceAll() performance suffer from string immutability?

假設我在一個替換1,000個匹配實例的大字符串上調用了replaceAll()。 這是否意味着由於字符串不變性而創建並重新分配了1,000個字符串? 還有更快的選擇嗎?

如果你深入研究String ,你會看到它將replaceAll()委托給PatternMatcher, Matcher.replaceAll()使用StringBuilder來存儲最終返回的值。

所以不,String.replaceAll()不會創建多個對象。

你可以嘗試使用StringBuffer / StringBuilder ,因為它們是可變的 CharSequence s:

CharSequence veryBigString = new StringBuilder();
Pattern.compile(regex).matcher(veryBigString).replaceAll(replacement);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM