摘要:[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放進字串時,記得將\改為\\