Java

【Java】数値かどうか正規表現チェック

Javaで数値判定する方法はいくつかあるが、ここでは正規表現で判定する方法。

public boolean isNumber(String num){
	if(Pattern.matches("^[1-9]?[0-9]+$", num)){
		return true;
	}
	return false;
}

 

ポイントは、Pattern.matches([正規表現], [チェックする文字列])。

上記の例では単純な整数をチェックしている。

 

少数、負数を考慮すると以下になる。

public boolean isNumber(String num){
	if(Pattern.matches("^-?[0-9]*.?[0-9]+$", num)){
		return true;
	}
	return false;
}

 

正規表現の説明をすると

^:行頭
[1-9]:1から9のいずれかの数値
?:直前の文字列が0か1回
[0-9]:0から9のいずれかの数値
+:直前の文字列を1回以上
*:直前の文字列を0回以上
$:行末

 

2017/03/13 追記

Stringクラスのmathesメソッドを使うと、より簡潔に正規表現チェックが可能。

str.matches([正規表現]);