[Regex][JAVA]字串判斷數字

  • 7939
  • 0
  • 2015-04-06

摘要:[Regex][JAVA]字串判斷數字

由於Java好像沒有內建判斷字串是否為數字的方法

例如在C#可以利用TryParse()測試

string value = "";
int number;
bool result = Int32.TryParse(value, out number);
if (result)
{
     Console.WriteLine("Converted '{0}' to {1}.", value, number);
}
else
{
    if (value == null) value = "";
    Console.WriteLine("Attempted conversion of '{0}' failed.", value);
}

真的超級方便

回歸正題,既然在JAVA上沒有封裝方便判斷的方法,就自己寫一個囉~

 

解決方法1:(不喜歡的味道)

public static boolean isInteger(String value) {
   try {
       Integer.parseInt(value);
       return true;
   }catch (NumberFormatException e) {
       return false;
   }
}

由於不喜歡看見例外處理的出現,所以....

解決方法2:(這個味道比較喜歡)

使用Regular expression做比對

Reg陳述句:^[-+]?\d+$

符合匹配的結果有:整數(純數)、負數(帶負號)、正數(帶正號)
附上測試網頁:Rubular

public static boolean isInteger(String value) {
    Pattern pattern = Pattern.compile("^[-+]?\\d+$");
    return pattern.matcher(value).matches();
}

●最後附上加強版:

小數(浮點數)

Reg陳述句:^([-+]?\d+)(\.\d+)?$

附上測試網頁:Rubular

小提醒:將Regular Expression放進字串時,記得將\改為\\