まだまだ Java 勉強中でアレなので、digit な String 型変数を int 型変数にするという方法を理解していなかったので、自作してしまった。ちなみに目標としている挙動は、String は 0 から 9の数値のみで構成されていている場合、その数値の数を int型で返す。そうでない場合は 0 で返す。ようは C 言語で言うところの atoi() が欲しかっただけ。
まずは最初に書いていた悪い例:
static int str2int (String str) {
Integer i = Integet.valueOf(str);
return i.intValue();
}
この場合、str が数値以外で構成されていると NumberFormatException が発生するらしい。あと Integer.valueOf(String s) した結果を Integer 型変数 i に代入していたが、お作法的に良いのかどうか不明だが 「Integer.valueOf(str).intValue()」 と書けるらしい。ということで以下のように書き替えた。
static int str2int (String str)
throws NumberFormatException {
try {
return Integer.valueOf(str).intValue();
} catch (NumberFormatException e) {
return 0;
}
}