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

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

このチュートリアルでは、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 で文字列から空白を削除する方法
  • Java で文字列の日付をタイムスタンプに変換する方法
  • 関連記事 - Java int

  • Java で文字列を Long に変換する方法
  • Java で日付を文字列に変換する方法
  • comments powered by Disqus