假设我对一个大字符串调用了replaceAll(),它替换了 1,000 个匹配实例。这是否意味着由于字符串不可变性,在进程中创建并重新分配了 1,000 个字符串?有没有更快的替代方案?
如果你深入挖掘String http://www.docjar.com/html/api/java/lang/String.java.html,你会看到它将replaceAll()委托给Pattern http://www.docjar.com/html/api/java/util/regex/Pattern.java.html & Matcher http://www.docjar.com/html/api/java/util/regex/Matcher.java.html andMatcher.replaceAll() 使用 StringBuilder 来存储最终返回的值。
所以,String.replaceAll() 不会创建超过少量的对象。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)