91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

通海县| 张家港市| 泸州市| 正定县| 青海省| 玛沁县| 靖边县| 台安县| 上高县| 库车县| 黄陵县| 辽阳县| 阜城县| 博兴县| 邹平县| 乐山市| 凉城县| 三江| 闸北区| 邹城市| 延安市| 庄河市| 怀远县| 平度市| 灌南县| 杭锦旗| 高清| 温州市| 二连浩特市| 双城市| 开平市| 舟曲县| 富源县| 平江县| 祁门县| 阿克陶县| 苍山县| 长春市| 盘锦市| 肇州县| 江北区|