博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java9之String.replace()改进
阅读量:5998 次
发布时间:2019-06-20

本文共 635 字,大约阅读时间需要 2 分钟。

hot3.png

据说java9的spring.replace比java8的高效了许多,看看内部实现吧

先看看java8中的 其中单个字符的处理

replace(char oldChar, char newChar) 方法,使用大家已经很熟悉了吧

比如:mesquite in your cellar".replace('e', 'o')     returns "mosquito in your collar"

上面那个是从代码注释中复制出来的例子,下面是对string中单个字符的替换,将数组val赋值给了buf,如果遇到oldchar就用newChar替换, 然后返回一个新的String。

161814_O8tM_2277632.png

然后看看java9的实现

162600_xB4Z_2277632.png

那么先看看isLatin1干了什么?看意思好像是说用了ISO-8859-1编码还是UTF编码,至于COMPACT_STRINGS,看注释说的是当设置成false的时候,默认使用UTF16编码。

162759_cJA8_2277632.png

看看StringLatin1中的replace好像实现来说就加了编码的控制,方法好像差不多;

163507_eAgH_2277632.png

 

java8中字符串匹配的replace,用了正则表达式的匹配处理替换。

172624_tSmO_2277632.png

但是java9中的写法就不一样了,是自己实现的,先获取第一个位置,接着往下替换,所以aaa用b替换aa,就会返回ba,而不是ab。

172815_G1Jw_2277632.png

复制一段文字测试一下

200808_Hfhb_2277632.png

java8的结果

200838_RZFO_2277632.png

java9的结果

200934_ewyL_2277632.png

目测这快的不止一点点

转载于:https://my.oschina.net/u/2277632/blog/1564056

你可能感兴趣的文章
采用“Website Baker”优化LNMP架构
查看>>
我的家庭私有云计划-13
查看>>
《IT人生需要指引》读后感(学生作业分享)
查看>>
SIEM市场并购:Sensage被军工企业收购
查看>>
OpenTSDB 2.3+及TCollector 1.3+安装配置排错
查看>>
面向数据可靠性存储系统设计思想探讨
查看>>
Linux CentOS7 企业实用教程(一)
查看>>
System Center 2012与vCenter Operations 产品功能对比
查看>>
精品软件 推荐 百度 卫士
查看>>
Django ORM 一对多表的创建
查看>>
rrdtool学习和自定义脚本绘制图形备忘
查看>>
RedHat 7 编译安装Nginx 1.12并配置WEB站点
查看>>
Puppet cron资源介绍(二十七)
查看>>
Zabbix3.2.6之通过JMX监控Tomcat
查看>>
濛濛有感——懂与不懂(一)
查看>>
VMware Workstation共享磁盘
查看>>
nagios和cacti 整体迁移
查看>>
【VMCloud云平台】SCAP(三)初始配置
查看>>
perl学习笔记(5)
查看>>
读书笔记-恰到好处的幸福
查看>>