Java - 判斷字串是否為數字

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

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

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

來判斷。

一、利用例外處理判斷

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

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

式中斷。

二、Commons Package - NumberUtils API

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

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

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

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

留言