正则表达式匹配数字

guan_tu 2015-09-02 02:57:08

public static boolean isNum(String str) {
return str.matches("^[-+]?(([0-9]+)([.]([0-9]+))?|([.]([0-9]+))?)$");
}


写了一个匹配正则表达式的方法 ,但是当传入字符串为空时,为什么返回true? 传入空字符串的话应该是不匹配的呀
...全文
159 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
铁匠梁 2015-09-03
  • 打赏
  • 举报
回复
有恶心的方法 就是强转数字,报错就不是数字
三目君 2015-09-02
  • 打赏
  • 举报
回复
public class A {

    public static void main(String[] args) {
        System.out.println(isNum(""));
        System.out.println(isNum("1"));
        System.out.println(isNum("1.1"));
        System.out.println(isNum("1."));
        System.out.println(isNum(".1"));
        System.out.println(isNum("0.1"));
        System.out.println(isNum("a"));
    }

    public static boolean isNum(String str) {
        return str.matches("^[-+]?((([0-9]+)([.]([0-9]+))?)|([.]([0-9]+)))$");
    }

}
forDream_ 2015-09-02
  • 打赏
  • 举报
回复
[+-]*?\d+\.*?\d+
forDream_ 2015-09-02
  • 打赏
  • 举报
回复
[+-]*?\d+\.\d+
这个表达式可以么?
tony4geek 2015-09-02
  • 打赏
  • 举报
回复
没有最少匹配,还有你那也有个或
gukuitian 2015-09-02
  • 打赏
  • 举报
回复
你这写麻烦了,而且有问题, 比如: 00.1
gukuitian 2015-09-02
  • 打赏
  • 举报
回复
^[-+]?(([0-9]+)([.]([0-9]+))+|([.]([0-9]+)))+$

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧