Java - 判斷字串是否為數字

一般來說,當我們在讀取檔案的內容時,讀出來的資料為字串的型態,而在某些欄位應該

為數字的情形下,若有不合法的字串數字,那麼勢必會在轉型的過程中出現例外錯誤!

因此在這邊主要探討兩個簡單的方式,一者在例外處理時跳過,二者透過commons相關API

來判斷。

一、利用例外處理判斷

String num_arrat[] = {"123", "a123", "321", "541", "c123"};
System.out.println("方法1. 使用例外處理判斷字串是否為數字:");
for(String num : num_arrat){
    try{
        System.out.println(Integer.parseInt(num));
    } catch(NumberFormatException e){
        System.out.println(num+"無法轉換成數字型態!");
    }
} 

一旦透過Integer.parseInt來轉型時,碰到非數字的字串,則會被例外處理捕捉,以此必免程

式中斷。

二、Commons Package - NumberUtils API

利用Apache commons package - NumberUtils's isCreatable method來回傳true or false的結果

,判斷該字串是否為數字。

System.out.println("方法2. 使用NumberUtils API判斷:");
for(String num : num_arrat){
    if(NumberUtils.isCreatable(num))
        System.out.println(num);
    else
        System.out.println(num+"無法轉換成數字型態!");
}

利用外部package的處理方式感覺更簡潔囉!

留言