Java で文字列を整数に変換する方法

Mohammad Irfan 2023年10月12日
  1. Java の parseInt() を用いて文字列 String から整数 int に変換する
  2. Java の Apache を用いて文字列を整数に変換する
  3. Java の decode() を用いて文字列から整数に変換する
  4. Java の valueOf() メソッドを用いて文字列から整数に変換する
  5. Java の parseUnsignedInt() を用いて文字列から整数に変換する
  6. Java の replaceAll() を用いて非数値文字を削除した後に文字列に変換する
Java で文字列を整数に変換する方法

このチュートリアルでは、Java で文字列を整数に変換する方法と、それを理解するためのコード例を紹介します。

Java の parseInt() を用いて文字列 String から整数 int に変換する

Java では文字列と整数の両方がデータ型です。String はテキスト情報を格納するために用いられ、int は数値データを格納するために用いられます。

ここでは、Integer クラスの parseInt() メソッドを用いて Integer を返します。Java は暗黙のうちにオートボックシングを行うので、int プリミティブ型に格納することができます。以下の例を参照してください。

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "1234";
    int int_val = Integer.parseInt(str);
    System.out.println(int_val);
  }
}

出力:

1234

Java の Apache を用いて文字列を整数に変換する

Apache ライブラリを利用している場合、NumberUtils クラスの toInt() メソッドを利用して整数型の値を返すことができます。渡された文字列に数字以外の文字が含まれていた場合、このメソッドは例外を投げずに 0 を返します。この場合、NumberFormatException をスローする parseInt() よりも toInt() を使った方が安全です。以下の例を参照してください。

import org.apache.commons.lang3.math.NumberUtils;

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "1234";
    int int_val = NumberUtils.toInt(str);
    System.out.println(int_val);
    str = "1234x"; // non-numeric string
    int_val = NumberUtils.toInt(str);
    System.out.println(int_val);
  }
}

出力:

1234
0

Java の decode() を用いて文字列から整数に変換する

文字列から int の値を取得するには、Integer クラスの decode() メソッドを用いることができます。これは Integer の値を返しますが、int (プリミティブ) の値を取得したい場合は decode() メソッドと一緒に intValue() を使用します。以下の例を参照してください。

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "1424";
    int int_val = Integer.decode(str);
    System.out.println(int_val);
    // int primitive
    int_val = Integer.decode(str).intValue();
    System.out.println(int_val);
  }
}

出力:

1424

Java の valueOf() メソッドを用いて文字列から整数に変換する

変換後の文字列の int 値を取得するには、valueOf() メソッドを用いることができます。

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "1424";
    int int_val = Integer.valueOf(str);
    System.out.println(int_val);
  }
}
1424 1424

Java の parseUnsignedInt() を用いて文字列から整数に変換する

符号を含まない文字列を変換したい場合は、parseUnsignedInt() メソッドを使って int の値を取得します。これは符号なし文字列の値でも問題なく動作し、値が符号付きの場合は例外をスローします。

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "1424";
    int int_val = Integer.parseUnsignedInt(str);
    System.out.println(int_val);
  }
}

出力:

1424

Java の replaceAll() を用いて非数値文字を削除した後に文字列に変換する

文字列に数値以外の文字が含まれている場合は、String クラスの replaceAll() メソッドを regex と組み合わせて使用して数値以外の文字をすべて削除し、Integer クラスの parseInt() メソッドを使用して等価な整数値を取得します。以下の例を参照してください。

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "1424x";
    str = str.replaceAll("[^\\d]", "");
    int int_val = Integer.parseInt(str);
    System.out.println(int_val);
  }
}

出力:

1424

関連記事 - Java String

関連記事 - Java Integer