字符串替换----简单


placeholder image
admin 发布于:2010-12-06 15:17:00
阅读:loading

1、有一字符串image.png

,将字符串里面的 java(不区分大小写),一律转换成 JAVA大写的。

实现方式用正则,如下:

image.png

输出结果 is OK!

2、有一字符串同上,将第单数个含有java(不区分大小写)的替换成小写的java,第双数个java(不区分大小写)替换成大写的JAVA,实现方式如下:

1)、首先将所有匹配java(不区分大小写)的字符匹配出来,然后再找到当前匹配出的是第N数个,还是第2N个,然后再替换,常规方法如下:

image.png

需要注意的是,这样的写法是存在问题的,因为String类的replace();会先替换字符串,然后正则再往后找,以后再找的字符串,至于上面的为什么没有出现问题,仔细观察,很容易发现,是因为所有的java字符(不区分大小写)之间没有重复的,也就是说不存在这样Java、Java或JAVa、JAVa这样的重复匹配的字符,所以说这样的写法是不可取的,没有写重复的字符其实就是一陷阱。

2)、解决这种问题的方式是正则里面的

appendReplacement(StringBuffer sb, String replacement)
          实现非终端添加和替换步骤。

appendTail(StringBuffer sb)
          实现终端添加和替换步骤。这2个函数。

详细如下:

image.png

image.png

此时解决了2-1中的问题

 点赞


 发表评论

当前回复:作者

 评论列表


留言区