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

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

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

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

なお、Javaの記事については、こちらにまとめています。

目次

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への型変換の方法を忘れてしまったら、この記事を思い出してくださいね!

この記事を書いた人

侍エンジニア塾は「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。侍テック編集部では技術系コンテンツを中心に有用な情報を発信していきます。

目次