簡単に書いてみた

仕事で気になった。COBOLでは、ある領域が数値で構成されているかというNUMERICチェックが命令として用意されているのだが、Javaだと微妙なものしかない。ちょっと探してみたが、先頭が0のものは数値でないという判断をするJavaメソッドが多く、COBOLのNUMERICチェックとは挙動が異なる。

というわけで、簡単に書いてみた。

public class MyNumberUtil {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		System.out.println("123 is " + isNumeric("123"));
		System.out.println("0123 is " + isNumeric("0123"));
	}
	
	public static boolean isNumeric(String numStr) {
		if ("".equals(numStr)) {
			return false;
		}
		int strLen = numStr.length();
		for (int i=0 ; i<strLen ; i++) {
			if (Character.isDigit(numStr.charAt(i)) ) {
				continue;
			} else {
				return false;
			}
		}
		return true;
	}

}

なんか、予想以上に簡単だった。まぁ、小数点とか負の数とかは全力でfalseになるのだが、まぁ、そんなものは求めてない。