StringUtils.isNumeric使用


    在做導入/導出功能時,客戶要求導出數字類型的值時,將excel相應單元格屬性設為number型,由此需判斷字符串值是否為數字,代碼如下:

public static boolean isNumber(String number) {int index = number.indexOf(".");
        if (index < 0) {
            return StringUtils.isNumeric(number);
        } else {
            String num1 = number.substring(0, index);
            String num2 = number.substring(index + 1);

            return StringUtils.isNumeric(num1) && StringUtils.isNumeric(num2);
        }
    }

 

網上查"java 判斷字符串為數字"閱資料,大部分資料都在講字符串轉為整數的情況,很少資料提及關於負數和小數的情況,最終決定采用StringUtils.isNumberic這個方法差別,

在測試導出時發現有報錯,用debug模塊一點點追蹤,發現StringUtils.isNumeric會將空字符串返回true,先這樣解決一下:

public static boolean isNumber(String number) {
        if(number==null || "".equals(number))
            return false;
        int index = number.indexOf(".");
        if (index < 0) {
            return StringUtils.isNumeric(number);
        } else {
            String num1 = number.substring(0, index);
            String num2 = number.substring(index + 1);

            return StringUtils.isNumeric(num1) && StringUtils.isNumeric(num2);
        }
    }

網上繼續查找,這個方法怎么會有這種情況,最終在官網上找到其他程序員提出的這個問題及java開發團隊的回答(原文鏈接:https://issues.apache.org/jira/browse/LANG-428 ),可能在未來某個版本中會把這個問題給解決掉,在此記錄下。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM