【Java】

数値⇔文字列の変換方法

valueOf()・parseXXX()メソッドの使い方

投稿日 2020/11/08 更新日 2020/11/08


こんにちは。当サイトの管理者「元木皇天」です。

数値を文字列に、文字列を数値に変換する場面はJavaに限らずよくあります。 今回はJavaで数値と文字列を変換する方法を解説します。

環境:Java11

数値を文字列に変換する

数値を文字列に変換するには「valueOf()」というメソッドを使用します。

String.valueOf(変換する数値)

以下使用例です。

int i = 10;
double d = 10.0;

//String型に変換する
String strI = String.valueOf(i);
String strD = String.valueOf(d);

//変換したものを出力する
System.out.println(strI);
System.out.println(strD);

//出力結果
10
10.0

使用する際は、String.valueOf()という形で使用し、引数には文字列に変換したい数値を設定します。 また、本当に文字列に変換されているかを確認するため、instanceofを使用し、String型になっているかどうかを確認します。

//instanceofを使用しString型かどうかを判定する
System.out.println(strI instanceof String);
System.out.println(strD instanceof String);

//出力結果
true
true

文字列に変換されていることが確認できました。

文字列を数値に変換する

文字列を数値に変換したいという場面も多いです。 そう言った場面では「parseXXX()」を使用した変換方法が一般的です。

ラッパークラス名.parseXXX(String型)

実際の使用方法は以下のコードを参考にしてください。

String str = "100";

//byte型に変換する
byte a = Byte.parseByte(str);
System.out.println(a);

//short型に変換する
short b = Short.parseShort(str);
System.out.println(b);

//int型に変換する
int c = Integer.parseInt(str);
System.out.println(c);

//long型に変換する
long d = Long.parseLong(str);
System.out.println(d);

//float型に変換する
float e = Float.parseFloat(str);
System.out.println(e);

//double型に変換する
double f = Double.parseDouble(str);
System.out.println(f);

//出力結果
100
100
100
100
100.0
100.0

上記のようにparseXXX()メソッドを使用することで、文字列をそれぞれの数値の型に変換することができます。

--補足--

文字列を数値に変換するもう一つの方法として、各ラッパークラスのvalueOf()を使用する方法も存在します。 使い方は以下の通りです。(ここではIntegerクラスを例にしています。)

String str = "100";

//String型をint型に変換する。
int i = Integer.valueOf(str);
System.out.println(i);

//出力結果
100

一見すると先ほどのparseInt()と変わりなく見えますが、実は微妙に違いがあります。それは戻り値です。 parseInt()は戻り値としてint型を返します。一方でvalueOf()は戻り値としてInteger型を返します。 上記の例では戻り値のInteger型を「int i」にアンボクシングしているので、結果としてint型として使用しています。 実際そこまで気にしなくてもいいとは思いますが、戻り値の型が違うという仕様を頭の片隅に入れておけば、思わぬバグの対処に役立つかもしれないと思ったので補足しました。

公式API

参考文献・おすすめ文献