使用Matcher类替换字符串 -- 《JAVA编程思想》43

在实际业务开发中,对字符串进行替换是常常遇到的场景,通常可以使用以下三种方式:

(1) replace(CharSequence target, CharSequence replacement)

通过 replace() 方法指定需要替换的新老字符执行替换操作,此方法还有个支持 char 类型的重载方法 replace(char oldChar, char newChar) 。

        String str = "a1 b2 c3 d4 e5";
        System.out.println(str.replace('a', 'A'));
        System.out.println(str.replace("b2", "B2"));
A1 b2 c3 d4 e5
a1 B2 c3 d4 e5

(2) replaceFirst(String regex,String replacement)

通过 replaceFirst() 将满足正则表达式的第一个字符串进行替换

        String str = "a1 b2 c3 d4 e5";
        System.out.println(str.replaceFirst("[a-z][0-9]", "value"));
value b2 c3 d4 e5

(3) replaceAll(String regex, String replacement)

通过 replaceAll() 将满足正则表达式的全部字符串进行替换

        String str = "a1 b2 c3 d4 e5";
        System.out.println(str.replaceAll("[a-z]", "value"));
value1 value2 value3 value4 value5

上述三种方法只能满足简单的替换要求,假设现在需要将字符串中的空格去除,还需要将指定字母全部转成大写,这时就需要使用到 Matcher类。

首先,我们来了解 Matcher 类中的几个方法:

(1) appendReplacement(StringBuffer sb, String replacement)

将这次匹配到字符串替换为 replacement ,并获取上一次匹配至这一次匹配之间的字符串,追加 replacement 至它们之后,再存入 StringBuffer 中。

(2)appendTail(StringBuffer sb)

将最后一次匹配之后的字符串存入 StringBuffer 中。

上述两个方法初看难以理解,可以结合下例进行消化:

public class TheReplacements 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BaymaxCS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值