数値から文字列への変換

広告

int型の値やfloat型の値を文字列(Stringクラスのオブジェクト)に変換する方法を確認します。単に出力したいというだけなら文字列に変換する必要はありませんが、文字列に変換することでStringクラスで用意されている各メソッドを使用することができるようになります。

変換する方法は3つあります。順に確認していきます。

toStringメソッドを使用する

1つ目の方法は基本データ型をラッパークラスのオブジェクトに変換した後で、各ラッパークラスで用意されているtoStringメソッドを使って文字列に変換する方法です。toStringメソッドはオブジェクトの文字列表現を返します。

int i = 84;
Integer oi = new Integer(i);

String str = oi.toString();

上記ではIntegerクラスを使った場合ですが他のラッパークラスでも同様です。

valueOfメソッドを使用する

2つ目の方法はStringクラスで用意されているvalueOfメソッドを使って文字列に変換する方法です。valueOfメソッドは対象となる値の種類毎に次のようなメソッドが用意されています。

static String valueOf(boolean b)
static String valueOf(char c)
static String valueOf(double d)
static String valueOf(float f)
static String valueOf(int i)
static String valueOf(long l)

valueOfメソッドは引数に指定された値の文字列表現を返します。例えばint型の値を文字列に変換する場合は次のように記述します。

int i = 84;

String str = String.valueOf(i);

この場合、引数にはラッパークラスのオブジェクトではなく基本データ型の値を直接指定することに注意して下さい。

なおshort型とbyte型の引数を取るメソッドが用意さえていませんが、どちらのデータ型の値をvalueOfメソッドの引数に指定しても文字列表現を取得できます。恐らく自動的にint型へ変換されてメソッドが実行されていると考えられます。

+演算子を使用する

文字列の連結」で記述していますが「+」演算子は文字列と数値が対象だった場合には数値を文字列に変換してから連結を行います。その為、基本データ型の値と空文字""を「+」演算子で連結することで数値を文字列に変換することができます。

例えば次のように記述します。

int i = 84;

String str = "" + i;

「+」演算子の対象の値の1つが文字列なので、もう一方の値である数値を文字列に変換してから連結します。連結する左側の文字列は空文字なので結果的に数値を文字列に変換したものが左辺に代入されることになります。

サンプル

では簡単な例で試しておきます。

JSample4_1.java

class JSample4_1{
  public static void main(String args[]){
    int i = 84;
    Integer oi = new Integer(i);

    String str1 = oi.toString();
    String str2 = String.valueOf(i);
    String str3 = "" + i;

    System.out.println(str1);
    System.out.println(str2);
    System.out.println(str3);
  }
}

コンパイル後に実行すると次のように表示されます。

p4-1

( Written by Tatsuo Ikura )