スポンサーリンク
Java

【Java】String文字列とint数値の相互変換

Java

文字列と数値は日常生活ではどちらも同じく「文字」の一種に過ぎませんが、プログラム上でいくと異なる性質となります。

例えば文字列の”1” + ”1”は”11”となり、文字同士の連結を行います。

数値は 1 + 1 = 2 となり数値の足し算を実行します。

文字列として数値を扱いたい場合や文字列の数字を数値として扱いたいことが多々あります。

その場合に使用するメソッドや書き方の解説を行います。

 

数値(int)を文字列(String)に変換する

Javaで数値(int)から文字列(String)に変換する場合、

「valueOf」メソッドと「toString」メソッドを使用します。

 

valueOfメソッドの使用方法

valueOfメソッドはString型に変換する場合に使用されるメソッドでint型に限らず様々なデータ型をStringに変換することができるメソッドです。

今回は「int」「Integer」「byte」「short」を例に解説します。

import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {

        int intNum = 1;
        Integer integerNum = 2;
        byte byteNum = 3;
        short shortNum = 4;

        // 以下でString型に変換
        String strInt = String.valueOf(intNum);
        String strInteger = String.valueOf(integerNum);
        String strbyte = String.valueOf(byteNum);
        String strShort = String.valueOf(shortNum);

        System.out.println("intの変換結果:" + strInt);
        System.out.println("Integerの変換結果:" + strInteger);
        System.out.println("byteの変換結果:" + strbyte);
        System.out.println("shortの変換結果:" + strShort);
    }
}

以下、実行結果

intの変換結果:1
Integerの変換結果:2
byteの変換結果:3
shortの変換結果:4

実行結果の通り、様々なデータ型をStringに変換できることが確認できました。

もし、valueOfメソッドの引数にNullが混入することがあっても、文字列Null「”null”」とはならず「null」としてくれます。

  

toStringメソッドの使用方法

toStringメソッドはIntegerクラスやByteクラスなどから提供されているメソッドとなります。

import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {

        int intNum = 1;

        // 以下でString型に変換
        String strInt = Integer.toString(intNum);

        System.out.println("toString変換結果:" + strInt);
    }
}

以下、実行結果

toString変換結果:1

*注意点*

toStringメソッドの引数にNullが入ると「NullPointerException」が発生するので注意しましょう。

  

文字列(String)を数値(int)に変換する

Javaで文字列を数値型に変換する際に使用するメソッドは

「parseInt」と「valueOf」があります。

valueOfメソッドは返り値がInteger型となるので使用頻度低いため、今回紹介は省略させていただきますが

intを文字列に変換する際と同様の使い方です。valueOfメソッドの引数にString型を渡すとInteger型が返却されます。

parseIntメソッドの使用方法

import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {

        String strNum1 = "1";
        String strNum2 = "2";

        // 以下でint型に変換
        int intStr1 = Integer.parseInt(strNum1);
        int intStr2 = Integer.parseInt(strNum2);
        int result = intStr1 + intStr2;

        System.out.println(strNum1 + " + " + strNum2 + " = " + result);
    }
}

以下、実行結果

1 + 2 = 3

実行結果より文字列から数値型に変換できていることが確認できました。

 

まとめ

文字列と数値は日常生活でも馴染みのあるデータ型なのでイメージがしやすいと思いますが、逆に考慮漏れが起こりうる可能性も高くなります。(普段見慣れているから違和感に気づかない)

ソート処理を行いたい場合や文字の結合、数値の計算を行う場合など様々な状況で使用されるので文字列型と数値型でエラーが起こりやすく、原因の断定に時間を要することも少なくないので習慣的に気をつけてコーディングを行いましょう。