中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java有幾種方法可以判斷字符串是否是數字

發布時間:2020-06-26 11:34:59 來源:億速云 閱讀:196 作者:Leah 欄目:編程語言

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有幾種方法可以判斷字符串是否是數字問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

侯马市| 武平县| 武威市| 钟祥市| 长乐市| 天等县| 漳浦县| 修文县| 曲阜市| 阜宁县| 天长市| 泾川县| 井陉县| 砀山县| 东安县| 安达市| 京山县| 晴隆县| 蓝田县| 互助| 夏河县| 高碑店市| 广平县| 天台县| 蚌埠市| 绩溪县| 化隆| 巴彦淖尔市| 专栏| 右玉县| 固阳县| 九江县| 增城市| 绥宁县| 怀柔区| 平舆县| 伊金霍洛旗| 青河县| 比如县| 济阳县| 旬邑县|