【Java入門】string to int変換方法まとめ

JavaのStringを扱う上で、文字列を整数値へ変換したり、整数値を文字列に変換するといった対応が必要なことがあります。

「Stringをintに変換したい」
「intをStringに変換したい」
「int以外の他の型へも変換できるか知りたい」
「byte型も変換できるか知りたい」

今回は、そんな悩みを解決するために、Stringの型変換の使い方をわかりやすく解説します!

Stringからint、intからStringへ変換

JavaではStringからint、intからStringに変換するためのメソッドが用意されています。ここではそれぞれの使い方について、解説いたします。

Stringからintに変換

Stringからintに変換する場合はparseIntメソッドを使用します。
parseIntメソッドは、指定したString型の値を10進数の整数型として返します

以下にvalueOfメソッドを使用したStringからintへ変換するサンプルを記述します。

public class Main {
    public static void main(String[] args) throws Exception {
        
        //String型を宣言
        String str = "100";

        //Stringからintへの変換
        int num = Integer.parseInt(str);
        System.out.println("num = " + num);
    }
}

実行結果

num = 100

サンプルではString型を宣言して整数の文字列を格納しています。

次にint型を宣言して、Integer.parseIntメソッドにてStringの値を指定しています。

parseintメソッドは整数型として返却するので、int型の変数numには100が格納されます。

文字列を数値に変換する時に注意しておきたいこととして、Stringの値は必ず数値の文字列である必要があります。

数値以外の文字列を整数値へ変換しようとすると、コンパイルエラーは発生しませんが、例外が発生してしまいます

例えば、以下のサンプルではString型に数値以外の文字列を設定し、parseIntメソッドを使用して数値へ変換しようとしています。

String str = "apple";
int num = Integer.parseInt(str);

この例では、実行時に”Exception in thread "main" java.lang.NumberFormatException”の例外が発生します。

そのため、文字列を数値へ変換するときは、必ずStringの値が数値であるとわかっているときに使用しましょう!

intからStringに変換

intからStringに変換する場合は、valueOfメソッドを使用します。
valueOfメソッドは、指定したint型の値をString型に変換して返します。

以下にvalueOfメソッドを使用したintからStringへ変換するサンプルを記述します。

public class Main {
    public static void main(String[] args) throws Exception {
        
        //int型を宣言
        int num = 100;
        
        //intからStringへの変換
        String str = String.valueOf(num);
        
        System.out.println("str = " + str);
    }
}

実行結果

str = 100

サンプルではint型を宣言して数値を設定し、String.valueOfメソッドで数値をString型に変換しています。

valueOfメソッドは数値をString型に変換して返却しますので、String型の変数strには、文字列の”100”が設定されています。

さまざまな変換方法

型変換は、Stringから数値型以外にも浮動小数点型、日付型などさまざまな形へ変換することが可能です。

さまざまなStringの型変換方法については、以下の記事で詳しく解説しています。

Stringからbyte、byteからStringへ変換

JavaではStringからbyteへの相互変換も可能です。Stringからbyteへ変換するメソッドも用意されていますので、ここで使い方を解説いたします。

Stringからbyteに変換

Stringからbyteへ変換する場合は、getBytesメソッドを使用します。

以下にgetBytesメソッドを使用した、Stringからbyteへ変換するサンプルを記述します。

import java.util.*;
 
public class Main {
    public static void main(String[] args) throws Exception {
        
        //String型を宣言
        String str = "apple";
        byte[] sbyte = str.getBytes();
        
        //byteの配列数分ループする
        for(int i=0; i<sbyte.length; i++)
        {
            //16進数で出力
            System.out.println(Integer.toHexString(sbyte[i]));
        }
    }
}

実行結果

61
70
70
6c
65

サンプルではString型を宣言して文字列を設定し、str.getBytesメソッドを使用して、String型をbyte型に変換しています。

byte型の値を出力したい場合、そのまま出力しても文字化けして表示されますので、16進数に変換して出力します。

byteからStringに変換

byteからStringに変換する場合は、Stringのコンストラクタを使用します。
Stringのコンストラクタは、byte配列を指定してStringに変換することが可能です。

以下にStringのコンストラクタを使用したbyteからStringへ変換するサンプルを記述します。

public class Main {
    public static void main(String[] args) throws Exception {
        
        //byte型配列を宣言
        byte[] sbyte = "12345".getBytes();
        
        //String型を宣言し、byteに変換する。
        String str = new String(sbyte);
        
        System.out.println(str);
    }
}

実行結果

12345

サンプルではbyte配列に数値を設定し、String型を宣言して、Stringコンストラクタでbyte配列を指定して、Stringの値を返しています。

Stringについてもっと詳しく知りたい方へ

Stringのさまざまな使い方については、以下の記事にまとめていますので、ぜひ参考にしてくださいね!

まとめ

Stringからintへの相互変換や注意点、byte型への変換方法についても説明しました。

Stringからの型変換は、さまざまな場面で使用する機会があると思います。

もし、Stringからintへの型変換の方法を忘れてしまったら、この記事を思い出してくださいね!

LINEで送る
Pocket

書いた人

ヤマシタ

システムエンジニアとして10年勤務→フリーランスへ。現在は侍ブログ編集部としてこれまでに200記事以上の記事を執筆。
大規模システム開発からWebアプリ開発まで経験あり。最近ではPythonの機械学習に挑戦中。