网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

java有几种方法可以判断字符串是否是数字

java有几种方法可以判断字符串是否是数字?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

网站建设哪家好,找创新互联建站!专注于网页设计、网站建设、微信开发、微信小程序定制开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了澧县免费建站欢迎大家使用!

1、用Java自带的方法

Java中有一个Character.isDig(char ch)

    public class CheckStrIsNum {   
        public static void main(String[] args) {     
            double aa = -192322.1212;    
            String a = "-192322.1212";  
            String b = "-192322a1212";     
            String c = "Java";  
            String d = "5";    
            /** 判断是否全为数字 */                     
            System.out.println(checkStrIsNum01(Double.toString(aa)));        
            System.out.println(checkStrIsNum01(a));        
            System.out.println(checkStrIsNum01(b));        
            System.out.println(checkStrIsNum01(c));        
            System.out.println(checkStrIsNum01(d)); 
        }
        
        /**
         * 利用Java的character.isDigit方法进行处理
         */
        public static boolean checkStrIsNum01(String str) {    
            for (int i = 0; i < str.length(); i++) {    
                System.out.println(str.charAt(i)); 
                if (!Character.isDigit(str.charAt(i))) { 
                    return false;  
                }
            } 
            return true;
       }
    }

显然b应该返回false才对,但是却返回true,而"5"应该返回true,也是结果错误。由此可见,这个结果,并不完美。

2、利用正则表达式来判断

利用正则表达式来-?[0-9]+(\\.[0-9]+)?来做判断字符串是否为数字。
如果传入的数据有很多位,那么使用double会导致精度丢失,这个时候就要用BigDecimal来进行转换。

    public class CheckStrIsNum {   
        public static void main(String[] args) {     
            double aa = -192322.1212;    
            String a = "-192322.1212";  
            String b = "-192322a1212";     
            String c = "Java";  
            String d = "5";    
            /** 判断是否全为数字 */                     
            System.out.println(checkStrIsNum02(Double.toString(aa)));        
            System.out.println(checkStrIsNum02(a));        
            System.out.println(checkStrIsNum02(b));        
            System.out.println(checkStrIsNum02(c));        
            System.out.println(checkStrIsNum02(d)); 
        }
        
        private static Pattern NUMBER_PATTERN = Pattern.compile("-?[0-9]+(\\.[0-9]+)?");
        /** 
         * 利用正则表达式来判断字符串是否为数字 
         */
         public static boolean checkStrIsNum02(String str) { 
            String bigStr; 
            try {      
                /** 先将str转成BigDecimal,然后在转成String */
                bigStr = new BigDecimal(str).toString(); 
            } catch (Exception e) { 
                /** 如果转换数字失败,说明该str并非全部为数字 */
                return false; 
            } 
            Matcher isNum = NUMBER_PATTERN.matcher(str); 
            if (!isNum.matches()) {    
                return false; 
            }  
            return true;
        }
    }

关于java有几种方法可以判断字符串是否是数字问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。


网站题目:java有几种方法可以判断字符串是否是数字
当前路径:http://bjjierui.cn/article/pdocdg.html

其他资讯