トップ «前の日記(Sat Sep 07 2002) 最新 次の日記(Mon Sep 09 2002)» 編集

よこいまさる日記



Sun Sep 08 2002 [長年日記]

[Java] String を int にする関数

まだまだ 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;
 }
}

2000|10|
2002|01|02|03|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|