文字列から数値への変換

テキストファイル、Webページ、キーボードからの行単位の入力、これらは文字列として扱われます。 それらの文字列の中に含まれる数字の並びを数値として扱いたい場合、文字列から数値への変換が必要です。 数値に変換することにより、演算の対象とすることができます。

ラッパークラスの利用

Integer, Double といったラッパークラスには、 文字列から数値に変換するクラスメソッドが用意されています。

Integer.parseInt(String s)
文字列 s が表現する数値を int型の整数値として返す。
整数値と解釈できない文字列を与えた場合は例外 NumberFormatException が発生。
Double.parseDouble(String s)
文字列 s が表現する数値を double型の実数値として返す。受け付ける文字列については Double.valueOf(String s) を参照のこと。
実数値と解釈できない文字列を与えた場合は例外 NumberFormatException が発生。

NumberFormat の利用

Integer.parseInt(String s) は、1,234 といった表現 (3桁ごとにカンマが入っている) に対応していません。 このような表現は世界共通ではないからです。例えばドイツではカンマは小数点を表します。

地域ごとの数値の表現方法に対応するクラスとして、NumberFormat が用意されています。 NumberFormat.getInstance() とすれば、 プログラムが動作する地域の表現方法に則した処理を行うインスタンスが生成されます。

// 数値を表す文字列 s (3桁区切り) を 数値 n (int) に変換
int n;
try {
    Number number = NumberFormat.getInstance().parse(s);
    n = number.intValue();
} catch (ParseException e) {
    e.printStackTrace();
}