当前位置:

Java 通过正则表达式判断字符串是否为数值

访客 2024-01-05 615 0

刷题中遇到的一个思路,通过正则表达式来匹配字符串,省去了很多繁琐的条件判断,代码简洁。

但唯一的缺点就是不易读。

因此,特意记录学习一下。

1.题目中“数值”的概念

数值(按顺序)可以分成以下几个部分:
(1)若干空格;
(2)一个小数或整数;
(3)(可选)一个‘e’或‘E’,后面跟着一个整数;
(4)若干空格;

其中,整数和小数的定义分别为:

小数(按顺序)可以分成以下几个部分:
(1)(可选)一个符号字符(‘’或‘-’);
(2)下述格式之一:
①至少一位数字,后面跟着一个点‘.’;
②至少一位数字,后面跟着一个点‘.’,后面再跟着至少一位数字;
③一个点‘.’,后面跟着至少一位数字。、

整数(按顺序)可以分成以下几个部分:
(1)(可选)一个符号字符(‘’或‘-’);
(2)至少一位数字。

2.正则表达式描述

根据上述的定义,可以列出每一种情况下的小数匹配模式:

描述正则表达式
至少一位数字,后面跟着一个点‘.’“\d\.{1}”
至少一位数字,后面跟着一个点‘.’,后面再跟着至少一位数字“\d\.{1}\d”
一个点‘.’,后面跟着至少一位数字“\.{1}\d”

3.Java代码

//正则表达式匹配是否为数值publicstaticbooleanisNumber(Strings){booleanans=false;s=s.trim();//去除字符串前后的空格;Stringpattern="[-]?((\\d\\.?\\d*){1}|(\\d\\.?){1}|(\\.{1}\\d){1}){1}([eE]{1}[-]?\\d)?";if(s.matches(pattern)){ans=true;}returnans;}

发表评论

  • 评论列表
还没有人评论,快来抢沙发吧~