字符串替换之正则替换

我想对于Java程序员而言,字符串替换肯定都是很熟悉的了,今天在工作中也遇到一个字符串替换的问题,可是一时之间竟然无从下手,顿时觉得基础没打好啊,这里记录一下,供需要的人学习一下。

需求描述:有个字符串变量,如“2018年的春节是哪一天?”,然后需要判断这个字符串中是否有年份的数字,如果有,那么就在这个年份的前面加上一个特殊的字符串(如[n1][y1])。

这样的需求该如何实现呢?

经过了思考和尝试后,发现原来在Java的String类中原来还有一种用法,是我之前所没有使用过的。代码如下:

String tips = "2018年的春节是哪一天?";

String yearPrefix = "[n1][y1]";

tips = tips.replaceAll("(\\d{4})", yearPrefix+"$1"));

经过上面的处理后,我们就可以轻松的将"2018年的春节是哪一天?"变换为“[n1][y1]2018年的春节是哪一天?”。

这里需要注意的是:在字符串替换的时候使用到了分组,必须"(\\d{4})"这么写,而不能"\\d{4}",这是需要大家注意的地方。如果需要替换的地方是多个,如下所示:

String date = "09-10-1";

String result = date.replaceAll("(\\d{2})-(\\d{2})-(\\d{1})","20${1}-${2}-0${3}")

上面就可以将"09-10-1"转换为"2009-10-01"了。看到这里,大家是不是又学会了一个小知识点。奋斗


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值