JAVA中appendReplacement()方法和replaceAll()方法有啥区别。。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA中appendReplacement()方法和replaceAll()方法有啥区别。。相关的知识,希望对你有一定的参考价值。

JAVA中appendReplacement()方法和replaceAll()方法有什么区别。。都是替换。还都支持正则。是appendReplacement()将替换后的存到缓冲区里吗?JAVA内部结构,每生成一个新的String对象,不就是生成一个StringBuffer对象吗?这俩个方法有什么区别?讲解详细些,谢谢。。

参考技术A appendReplacement()是把字符串放到缓冲区操作的,整体操作之后返回的!
replaceAll()则是一个一个的来进行拆分比较的.
当然你指的是java的
要注意replace 在js中只替换第一个注意要用全局正则
String 跟StringBuffer 是不一样的
String 长度不可变 线程不安全
StringBuffer 长度可变 安全
长度是说jvm 初始化的长度
String 初始化之后如果想改变对象,那么jvm相当于新开辟了内存堆栈付给对象 原来的内存被废止掉
而 StringBuffer 是在原来的堆栈(内存地址)前后直接增加或减少内存 那么指向的还是原来的那片内存
所以要养成习惯 在做字符串的增加减少的时候 习惯用StringBuffer去做
常用的地方就是sql语句形成
两个都关联了效率问题
当然现在大公司都会要求性能 要养成良好的习惯 对你有帮助
参考技术B 下面回答的很棒

以上是关于JAVA中appendReplacement()方法和replaceAll()方法有啥区别。。的主要内容,如果未能解决你的问题,请参考以下文章

使用 java matcher.replaceAll() / appendReplacement() 的“安全方式”

什么是 C# Regex 等价于 Java 的 appendReplacement 和 appendTail

用StringBuilder和StringBuffer实现的Unicode解码方法的比较(Java)

Java正则表达式

java中获取文件或文件夹的路径方

Google Web Toolkit 和第 3 方 Java 库