java 字符串替换 replace与replaceAll
来源:互联网 发布:淘宝买二手手机靠谱吗 编辑:程序博客网 时间:2024/06/05 14:24
replace与replaceAll方法都是用来替换字符串的。
首先,我们先比较一下这两种函数的性能:
示例:
public class StringReplaceEmp{ public static void main(String args[]){ String str="Hello World"; String newStr; long startTime = System.currentTimeMillis(); for(int i = 0;i<50000;i++){newStr = str.replace('H','W'); //将Hello中的H替换为W } long endTime = System.currentTimeMillis(); System.out.println("replace函数所花的时间:"+(endTime-startTime)+"毫秒"); long startTime1 = System.currentTimeMillis(); for(int i = 0;i<50000;i++){ newStr = str.replace('H','W'); } long endTime1 = System.currentTimeMillis(); System.out.println("replaceAll函数所花的时间:"+(endTime1-startTime1)+"毫秒"); }}
结果:replace函数所花的时间:21毫秒
replaceAll函数所花的时间:7毫秒
注释:System.currentTimeMillis() 是指获取当前时间的毫秒数,自1970年1月1日0时起至当前时间的毫秒数。
经过测试,说明replaceAll比replace执行速度是要快的。
然后我们测试一下有转义字符的替换:
replace:
public class StringReplaceEmp{ public static void main(String args[]){ String str="Hello\\World"; String newStr; newStr = str.replace("\\","++"); System.out.println(newStr); }}结果:Hello++World
replaceAll:
public class StringReplaceEmp{ public static void main(String args[]){ String str="Hello\\World"; String newStr; newStr = str.replaceAll("\\","++"); System.out.println(newStr); }}结果:
Exception in thread "main" java.util.regex.PatternSyntaxException: Unexpected internal error near index 1
\
^
at java.util.regex.Pattern.error(Pattern.java:1924)
at java.util.regex.Pattern.compile(Pattern.java:1671)
at java.util.regex.Pattern.<init>(Pattern.java:1337)
at java.util.regex.Pattern.compile(Pattern.java:1022)
at java.lang.String.replaceAll(String.java:2162)
at file.main(file.java:5)
但如果将"\\"改为"\\\\"就不会报错了。
public class StringReplaceEmp{ public static void main(String args[]){ String str="Hello\\World"; String newStr; newStr = str.replaceAll("\\\\","++"); System.out.println(newStr); }}结果:Hello++World
总结:如果是一般的没有转义字符的建议使用replaceAll函数来替换字符串。
若是有转义字符还是使用replace函数。
- java 字符串替换 replace与replaceAll
- java中String字符串的替换函数:replace与replaceAll的区别
- java中String字符串的替换函数:replace与replaceAll的区别 和replaceFirst
- java中String字符串的替换函数:replace与replaceAll的区别
- java中String字符串的替换函数:replace与replaceAll的区别
- java中String字符串的替换函数:replace与replaceAll的区别
- java中String字符串的替换函数:replace与replaceAll的区别
- java中String字符串的替换函数:replace与replaceAll的区别
- java中String字符串的替换函数:replace与replaceAll的区别
- java点滴:String字符串的替换函数:replace与replaceAll的区别
- java中String字符串的替换函数:replace与replaceAll的区别
- java中String字符串的替换函数:replace与replaceAll的区别
- java字符串的替换replace、replaceAll、replaceFirst的区别详解
- Java:String 字符串的替换函数 replace replaceAll replaceFirst
- java字符串的替换replace、replaceAll、replaceFirst的区别详解
- java字符串的替换replace、replaceAll、replaceFirst的区别详解
- java字符串的替换replace、replaceAll、replaceFirst的区别详解
- java字符串的替换replace、replaceAll、replaceFirst的区别详解
- SSH-Hibernate(二)—关系映射(上)
- Mac下ORA-21561: OID generation failed问题解决
- linux搭建smb文件共享服务,java上传文件共享服务器,tomcat端口直接访问
- 完整的R语言预测建模实例-从数据清理到建模预测
- 内存溢出和内存泄漏的区别
- java 字符串替换 replace与replaceAll
- CSS常用样式大全
- C函数的DLL,C++动态调用。
- Dragonboard410c服务器系列一之web局域网服务器
- CentOS安装mysql
- 重构-改善既有代码的设计读书笔记(九)
- linux yum命令详解
- 如何成为一个好QA?从理解业务框架开始
- MongoDB经验分享