Java工具類NumberUtils詳解

/**
         * @方法: public static int toInt(String str)
         * @作用: 將一個字符串轉換成int類型
         * @參數: str-將要轉換的字符串,可能會是null
         * @返回值: 轉換失敗返回0,否則返回轉換的結果值
         */
        System.out.println(NumberUtils.toInt("5")); //返回5
        System.out.println(NumberUtils.toInt("")); //返回0
        System.out.println(NumberUtils.toInt(null)); //返回0

        /**
         * @方法: public static int toInt(String str, int defaultValue)
         * @作用: 將一個字符串轉換成int類型,如果轉換失敗就返回一個默認值defaultValue
         * @參數: str-將要轉換的字符串,可能會是null;
         *        defaultValue-默認值,如果轉換失敗就顯示默認值
         * @返回值: 如果轉換失敗就返回一個默認值defaultValue,否則返回轉換的結果值
         */
        System.out.println(NumberUtils.toInt(null, 0)); // 返回 0
        System.out.println(NumberUtils.toInt("", 0)); // 返回 0
        System.out.println(NumberUtils.toInt("5", 0)); // 返回 5

        /**
         * @方法: public static long toLong(String str)
         * @作用: 將一個字符串數據轉換成一個long類型數據,如果轉換失敗返回0
         * @參數: 轉換的字符串,可能爲null;
         * @返回值: 字符串代表的long數據類型,或者轉換失敗的默認值0
         */
        System.out.println(NumberUtils.toLong(null)); // 返回 0
        System.out.println(NumberUtils.toLong("6")); // 返回 6
        System.out.println(NumberUtils.toLong("")); // 返回 0

        /**
         * @方法: public static long toLong(String str, long defaultValue)
         * @作用: 將一個字符串數據轉換成一個long類型數據,如果轉換失敗返回默認值
         * @參數: str-轉換的字符串,可能爲null;
         *        defaultValue-默認值
         * @返回值: 字符串代表的long數據類型,轉換失敗的時候返回默認值
         */
        System.out.println(NumberUtils.toLong(null, 0)); // 返回 0
        System.out.println(NumberUtils.toLong("6", 0)); // 返回 6
        System.out.println(NumberUtils.toLong("", 0)); // 返回 0

        //double(雙精度浮點數)和float(單精度浮點數):
        //在內存中佔的字節數不同,單精度浮點數佔4個字節,雙精度浮點數佔8個字節;
        //有效位數不同,單精度浮點數有效位數是8位,雙精度浮點數有效位數是16位;
        //位數不同,單精度浮點的表示範圍:-3.40E+38 ~ +3.40E+38,雙精度浮點的表示範圍:-1.79E+308 ~ +1.79E+308
        //處理速度不同,一般來說處理器處理單精度浮點數的速度比處理雙精度的浮點數速度要快;

        /**
         * @方法: public static double toDouble(String str)
         * @作用: 將一個字符串轉換成double類型
         * @參數: str-轉換的字符串,可能爲null
         * @返回值: 字符串代表的double值;如果轉換失敗返回0.0d,如果字符串是null返回0.0d
         */
        System.out.println(NumberUtils.toDouble(null)); // 返回 0.0
        System.out.println(NumberUtils.toDouble("")); // 返回 0.0
        System.out.println(NumberUtils.toDouble("12")); // 返回 12.0

        /**
         * @方法: public static double toDouble(String str, double defaultValue)
         *
         * @作用: 將一個字符串轉換成double類型,如果轉換失敗將會把默認值defaultValue返回
         * @參數: str-轉換的字符串,可能爲null;
         *        defaultValue-默認值
         * @返回值: 轉換成功返回字符串代表的double數據類型;如果轉換失敗返回0.0d;如果字符串值是null將會把默認值返回
         */
        System.out.println(NumberUtils.toDouble(null, 0.001d)); // 返回 0.001
        System.out.println(NumberUtils.toDouble("", 0.001d)); // 返回 0.001
        System.out.println(NumberUtils.toDouble("12", 0.001d)); // 返回 12.0

        /**
         * @方法: public static float toFloat(String str)
         * @作用: 將一個字符串轉換成float數據類型,如果轉型失敗返回0.0f;如果傳入參數字符串爲null,返回默認值0
         * @參數: str-轉換的字符串,可能爲null
         * @返回值: 轉換成功返回字符串代表的float數據類型,如果轉型失敗返回0
         */
        System.out.println(NumberUtils.toFloat(null)); // 返回 0
        System.out.println(NumberUtils.toFloat("")); // 返回 0
        System.out.println(NumberUtils.toFloat("1.6")); // 返回 1.6

        /**
         * @方法: public static float toFloat(String str, float defaultValue)
         * @作用: 將一個字符串轉換成float數據類型
         * @參數: str-轉換的字符串,可能爲null
         *        defaultValue-默認值
         * @返回值: 轉換成功返回字符串代表的float數據類型,否則返回默認值defaultValue
         *          (如果轉型失敗返回默認值defaultValue;如果傳入參數字符串爲null,返回默認值defaultValue)
         */
        System.out.println(NumberUtils.toFloat(null, 0.0001f)); // 返回 1.0E-4(1.0 * 10^﹣4)
        System.out.println(NumberUtils.toFloat("",0.001f)); // 返回 0.001
        System.out.println(NumberUtils.toFloat("1.6",0.0001f)); // 返回 1.6


        /**
         * @方法: public static boolean isDigits(String str)
         * @作用: 檢查字符串是否是隻包含數字字符,null和空將會返回false
         * @參數: str-檢查的字符串 str可爲null
         * @返回值: 只包含數字返回true,否則返回false
         */
        System.out.println(NumberUtils.isDigits("6666! Life is so short,do something to make yourself happy,such as coding! 6666")); // 返回 false
        System.out.println(NumberUtils.isDigits("6666!生活如此短暫,做一些使自己開心的事,比如編程!6666"));  // 返回 false
        System.out.println(NumberUtils.isDigits("666666"));  // 返回 true

        /**
         * @方法: public static boolean isParsable(String str)
         * @作用: 檢驗提供的字符串是否可以轉換爲number,
         *        可解析的number包括下面的方法 Integer.parseInt(String), Long.parseLong(String),
         *        Float.parseFloat(String) or Double.parseDouble(String),
         *        當調用上面的方法時這個方法可以替代ParseException異常;十六進制和科學符號被認爲是不可解析的;null和空字符串返回false;
         * @參數: str-檢驗的字符串 str可爲null
         * @返回值: true-如果參數是可轉換的字符串,否則返回false
         */
        System.out.println(NumberUtils.isParsable(""));  // 返回 false
        System.out.println(NumberUtils.isParsable(null));  // 返回 false
        System.out.println(NumberUtils.isParsable("12"));  // 返回 true
        System.out.println(NumberUtils.isParsable("12.0")); // 返回 true
        System.out.println(NumberUtils.isParsable("12.3")); // 返回 true
        System.out.println(NumberUtils.isParsable("7a"));  // 返回 false (十六進制7a對應十進制122)
        System.out.println(NumberUtils.isParsable("1.0E-4")); // 返回 false


        /**
         * @方法: public static boolean isCreatable(String str)
         * @作用: 檢查字符串是否是一個有效的number;
         *        有效數字包括進制標有0x或0X預選項,八進制數、科學記數法和標有類型限定符的數字,
         *        以 前導零開頭的非十六進制字符串被視爲八進制值,因此字符串09將返回false,因爲9不是有效的八進制,
         *        然而從0開始的數字,被視爲十進制;null、空或者空串將返回false;
         * @參數: str-檢查的字符串; str可爲null
         * @返回值: true-如果字符串是一個正確格式化的數字,否則返回false
         */
        System.out.println(NumberUtils.isCreatable(null)); // 返回 false
        System.out.println(NumberUtils.isCreatable(" ")); // 返回 false
        System.out.println(NumberUtils.isCreatable("")); // 返回 false
        System.out.println(NumberUtils.isCreatable("09")); // 返回 false
        System.out.println(NumberUtils.isCreatable("9")); // 返回 true
        System.out.println(NumberUtils.isCreatable("0x56")); // 返回 true
        System.out.println(NumberUtils.isCreatable("0X20")); // 返回 true

        /**
         * @方法: public static int compare(int x, int y)
         * @作用: 比較兩個int數值
         * @參數: x-第一個int比較值,y-第二個int比較值
         * @返回值: 如果 x==y 返回0;x<y 返回負數(-1);x>y 返回正數(1)
         */
        System.out.println(NumberUtils.compare(1,1)); // 返回 0
        System.out.println(NumberUtils.compare(1,2)); // 返回 -1
        System.out.println(NumberUtils.compare(3,2)); // 返回 1

        /**
         * @方法: public static int compare(long x, long y)
         * @作用: 比較兩個int數值
         * @參數: x-第一個long比較值,y-第二個long比較值
         * @返回值: 如果 x==y 返回0;x<y 返回負數(-1);x>y 返回正數(1)
         */
        System.out.println(NumberUtils.compare(1L,1L)); // 返回 0
        System.out.println(NumberUtils.compare(3L,2L)); // 返回 1
        System.out.println(NumberUtils.compare(5L,6L)); // 返回 -1

        /**
         * @方法: public static BigDecimal createBigDecimal(String str)
         * @作用: 將一個字符串轉換成BigDecimal類型,如果字符串是null將會返回null
         * @參數: str-轉換的字符串,可能爲null
         * @返回值: 被轉換的BigDecimal;如果輸入的字符串是null將會返回null
         * @拋出異常: 空串或不能解析將會拋出 NumberFormatException
         */
//        System.out.println(NumberUtils.createBigDecimal("abc")); // 報異常 java.lang.NumberFormatException
//        System.out.println(NumberUtils.createBigDecimal("")); // 報異常 java.lang.NumberFormatException: A blank string is not a valid number
        System.out.println(NumberUtils.createBigDecimal(null)); // 返回 null
        System.out.println(NumberUtils.createBigDecimal("1235")); // 返回 1235

        /**
         * @方法: public static Double createDouble(String str)
         * @作用: 將一個字符串轉換成Double類型,如果輸入字符串是null將會返回null
         * @參數: str-轉換的字符串,可能爲null;
         * @返回值: 被轉換的Double值(如果輸入字符串是null將會返回null);
         * @拋出異常: 如果值不能解析將會拋出NumberFormatException ;
         */
        System.out.println(NumberUtils.createDouble(null)); // 返回 null
//        System.out.println(NumberUtils.createDouble("asc")); // 返回 java.lang.NumberFormatException: For input string: "asc"
        System.out.println(NumberUtils.createDouble("12")); // 返回 12.0

        /**
         * @方法: public static Long createLong(String str)
         * @作用: 將一個字符串轉換爲Long數據類型,注:前導零表示八進制;空間不剪裁。如果字符串值是null將會返回null;
         * @參數: str-轉換的字符串,可能爲null;
         * @返回值: 被轉換的Long數據(如果輸入的是null將返回null);
         * @拋出異常: 如果值不能被轉換將會拋出NumberFormatException異常;
         */
//        System.out.println(NumberUtils.createLong("")); // java.lang.NumberFormatException: Zero length string
        System.out.println(NumberUtils.createLong(null));  // 返回 null
        System.out.println(NumberUtils.createLong("123")); // 返回 123

        /**
         * @方法: public static BigInteger createBigInteger(String str)
         * @作用: 將一個字符串轉換爲BigDecimal類型,自3.2以來,它處理六(0x或#)和八進制(0)符號。如果字符串爲null將會返回null
         * @參數: str-轉換的字符串,可能爲null
         * @返回參數: 被轉換的BigDecimal[如果輸入字符串爲null將返回null]
         * @拋出異常: 如果值不能被轉換將會拋出NumberFormatException異常
         */
//        System.out.println(NumberUtils.createBigInteger("")); // java.lang.NumberFormatException: Zero length BigInteger
        System.out.println(NumberUtils.createBigInteger(null)); // 返回 null
//        System.out.println(NumberUtils.createBigInteger("12s"));// java.lang.NumberFormatException: For input string: "12s"
        System.out.println(NumberUtils.createBigInteger("12")); // 返回 12

        /**
         * @方法: public static Number createNumber(String str)
         * @作用: 將一個字符串值轉換爲java.lang.Number類型
         * @參數: str-轉換字符串,可能爲null
         * @返回值: 從字符串創建的Number值;如果輸入的字符串爲null則返回null
         * @拋出異常: 如果值不能被轉換將會拋出NumberFormatException異常
         */
        System.out.println(NumberUtils.createNumber("123")); // 返回 123
//        System.out.println(NumberUtils.createNumber("12s")); // 返回 java.lang.NumberFormatException: 12s is not a valid number
        System.out.println(NumberUtils.createNumber("123.0")); // 返回 123.0
//        System.out.println(NumberUtils.createNumber("")); // 返回 java.lang.NumberFormatException: A blank string is not a valid number
        System.out.println(NumberUtils.createNumber(null)); // 返回 null

        /**
         * @方法: public static int max(int a, int b, int c)
         * @作用: 獲取三個int值中最大的一個
         * @參數: a-值1,b-值2,c-值3
         * @返回值: 最大的值
         * @拋出異常: 如果參數是空拋出java.lang.IllegalArgumentException: Array cannot be empty
         */
        System.out.println(NumberUtils.max(1,5,2,9,10)); // 返回 10
//        System.out.println(NumberUtils.max()); // 返回 java.lang.IllegalArgumentException: Array cannot be empty

        /**
         * @方法: public static int max(int… array)
         * @作用: 返回數組中最大的值
         * @參數: array-一定不能爲空或者null
         * @返回值: 數組中最大的值
         * @拋出異常: 如果數組爲空或者null將會拋出IllegalArgumentException異常
         */
        System.out.println(NumberUtils.max(1,2,3,4,5,9,1.0,2.0,2.5,9.8)); //  返回 9.8

 

發佈了123 篇原創文章 · 獲贊 59 · 訪問量 27萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章