Javaで文字列を数値に変換する

Java で文字列を数値に変換するときは、それぞれの数値型のクラスにある標準メソッドを使用します。

文字列から数値の変換は、入力した文字列の四則演算行う場合などに使用します。ここでは文字列をそれぞれの数値型に変換する方法について説明します。

文字列を数値に変換する

文字列を数値に変換するときは、それぞれの数値型のクラス名の prase から始まるメソッドを使用します。

以下は文字列をそれぞれの型に変換するサンプルコードです。

// int 型に変換
String str1 = "12";
byte num1   = Byte.parseByte(str1);

// short 型に変換
String str2 = "123";
short num2  = Short.parseShort(str2);

// int 型に変換
String str3 = "123";
int num3    = Integer.parseInt(str3);

// long 型に変換
String str4 = "123";
long num4   = Long.parseLong(str4);

// float 型に変換
String str5 = "123.12";
float num5  = Float.parseFloat(str5);

// double 型に変換
String str6 = "123.12";
double num6 = Double.parseDouble(str6);

文字列を数値に変換するときは、その文字列がその型の範囲内であるかどうか注意してください。たとえば、123.12 のような int 型ではない数値を int 型に変換しようとすると、コンパイル時にはエラーは発生しませんが、実行時に NumberFormatException が発生してしまいます。

以下は NumberFormatException が発生してしまうサンプルです。

// NumberFormatException の例外が発生してしまう
String str = "123.12";
int num    = Integer.parseInt(str);

基数を指定して数値に変換する

int 型の数値を2進数、8進数、16進数などの基数の値に変換するときは、以下のように記述します。

Int.parseInt(文字列, 基数)

第2引数に基数を指定することで、それぞれの基数の値に変換することができます。戻り値として文字列を変換して得られる整数値が返されます。

以下は文字列をそれぞれの基数に変換するサンプルです。

String str1 = "010";
int num1    = Integer.parseInt(str1, 2); // 2

String str2 = "012";
int num2    = Integer.parseInt(str2, 8); // 10

String str3 = "10";
int num3    = Integer.parseInt(str3, 10); // 10

String str4 = "FF";
int num4    = Integer.parseInt(str4, 16); // 255