表示数值的字符串(正则表达式匹配)

这是一篇关于如何使用正则表达式在Java中匹配表示数值的字符串的博客。作者通过分析剑指Offer20题,指出可以利用String.matches()函数解决此问题。文章强调了正则表达式的灵活性和易错性,并建议将数字分为正常数字和科学计数法数字两种情况进行匹配。文章提供了Java代码示例,并提到完善匹配规则和测试样例的重要性。
摘要由CSDN通过智能技术生成

题目:剑指offer20题。

题解


字符串匹配!用正则表达式来做

Java中String类支持正则表达式匹配 String.matches()函数,这道题恰好就可以用正则匹配来做。
当然手动地设计好匹配规则,自己写匹配也行,但是这样做题速度会更慢。
不要想什么简单方法,一步步来就行。

规则

  • 根据数据样例,先梳理清楚能表示数值的字符串有哪些情况,然后指定正则表达式。
  • 正则表达式比较灵活,而且容易出错,一旦出错都不知道怎么检查,建议将情况划分后分别写正则表达式。

分类、匹配(进入正题):

  • 我这里把数字分为正常数字(不含e/E)科学计数法数字
  • 分别制定规则进行匹配,匹配成功即返回true。
  • 当然数据样例也没包括所有的数据组成情况,需要我们自己再完善匹配规则。

Java代码

//class
    public boolean isNumber(String s) {
   
        //至少有一个数字,e前要有数字
        if (s == null || s.length() == 0 || !s.matches(".*\\d.*")) {
   //必须包含数字
            return false;
        }
        s = s.trim();//空格处理
        if (s.contains("e") || s.contains
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值