JavaのIntegerクラスはint型の値をラップするオブジェクトだ。
このページではJavaのIntegerについてまとめてご紹介していこう。
目次
Integerクラスとは
Integerクラスは、プリミティブ型intの値をラップするオブジェクトである。このオブジェクトが持つint型のフィールドはひとつだけである。加えて、int型の値を扱う時に役立つ定数やメソッドだけでなく、整数(int)を文字列(String)に、また文字列を整数に変換するいくつかのメソッドを提供している。
整数から文字列に変換
Integerクラスが提供する整数から文字列に変換するクラス・メソッドがある。
書き方の基本は簡単だ。
整数の文字列 = Integer. toString (対象となる整数)
このメソッドのAPI仕様の詳細を見てみよう。
API仕様
toString(int i)
戻り値の型 |
public static String |
内容 |
指定された整数で表されたStringオブジェクトを戻す。変数は、符号付の10進法表記に変換されており、変数と基数10がtoString(int, int)メソッドの引数として与えられたのとまったく同じ文字列が戻される。
引数: i - 変換されるべき整数。
戻り値: 引数を10進数で表した文字列。 |
サンプルプログラム
このサンプルプログラムは、int型を文字列に変換するためのtoString(int i)メソッドを使っている。
1 2 3 4 5 6 7 |
public class IntegerToString { public static void main(String[] args) { int value = 123;//[1] String string = Integer.toString(value);//[2] System.out.println("[3]string = " + string); } } |
実行結果
1 |
[3]string = 123 |
サンプルプログラムの説明
簡単にプログラムの解説をしてゆこう。
- [1] int型変数valueの宣言をし、123を代入する。
- [2] toStringメソッドを使って、変数valueを文字列オブジェクトstringに変換する。
- [3] stringを表示する。
文字列から整数に変換
Integerクラスが提供する文字列から整数に変換するクラス・メソッドがある。
書き方の基本は簡単だ。
文字列の整数値 = Integer. parseInt (対象となる文字列)
このメソッドについてそのAPI仕様の詳細を見てみよう。
API仕様
parseInt(String s)
戻り値の型 |
static int |
内容 |
文字列を、符号付10進数の整数に変換する。文字列の中の文字は、すべて10進数の数でなければならない。ただし、例外として最初の文字が負の値を示すASCIIマイナスサイン'-' ('\u002B')、あるいは正の値を示すASCIIプラスサイン'+' ('\u002B')であるかもしれない。 変数と基数10が引数としてparseInt(java.lang.String, int)メソッドに与えられたのとまったく同じ整数の値の結果が戻される。 引数: s – 変換されるためにint型の表現を含む文字列。 戻り値: 引数を10進数で表現した整数。 例外: NumberFormatException – もし文字列が変換できる整数を含まないならば。 |
サンプルプログラム
このサンプルプログラムは、文字列からint型に変換するためのparseInt(String s)メソッドを使っている。
1 2 3 4 5 6 7 |
public class StringToInteger { public static void main(String[] args) { String string = "123";//[1] int value = Integer.parseInt(string);//[2] System.out.println("[3] string = " + value); } } |
実行結果
1 |
[3] string = 123 |
サンプルプログラムの説明
簡単にプログラムの解説をしてゆこう。
- [1] String型参照変数stringを宣言し、”123”へのポインタを代入する。
- [2] parseIntメソッドを使って、変数stringの指す文字列をint型変数valueに変換する。
- [3] valueを表示する。
値を持つオブジェクトから変換
Integerクラスは、そのオブジェクトから様々な型の値に変換することもできる。オブジェクトは、整数値からコンストラクタかクラス・メソッドvalueOfを使って作る。変換は、それぞれの型に対応したインスタンス・メソッドが用意されている。
このメソッドについてそのAPI仕様の詳細を見てみよう。
API仕様
ここでは、String型の値からint型の値を得ることを想定して、そのふたつの仕様を記述する。他の仕様の詳細は仕様書を参照してできる。内容はほぼ同じである。
valueOf (String s)
戻り値の型 |
public static Integer |
内容 |
指定されたString値をもつIntegerオブジェクトを戻す。変数は符号付10進数の整数を表すものとして実行され、変数がparseInt(java.lang.String)メソッドに与えられたのとまったく同じように実行される。その結果は、文字列によって指定されたInteger値を表すIntegerオブジェクトである。 言い換えれば、このメソッドは値と等しいIntegerオブジェクトを戻す。 引数: s – 変換された文字列。 戻り値: 文字列変数によって表された値をもつIntegerオブジェクト。 例外: NumberFormatException – もし文字列が整数として変換されないならば。 |
valueOf (int i)
戻り値の型 |
public static Integer |
内容 |
指定されたint値を表すIntegerのインスタンスを戻す。もし新たなIntegerのインスタンスが要求されないならば、このメソッドは何度も要求される値をキャッシュすることによって著しくスペースと時間性能の向上を生み出すので、コンストラクタInteger(int)よりもむしろこのメソッドが一般的に用いられるべきである。 このメソッドは常に127から128の範囲の値をキャッシュするが、この範囲外の他の値もキャッシュされるかもしれない。
引数:i – int値。
戻り値:iによって表されたIntegerインスタンス。 |
サンプルプログラム
このサンプルプログラムは、String型の値からAPI仕様にあるvalueOfクラス・メソッドを使用してIntegerクラスのオブジェクトを取得し、取得したオブジェクトから様々な型の値に変換している。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
public class CreationOfObject { public static void main(String[] args) { Integer integerObject = Integer.valueOf("123");//[1] int intValue = integerObject.intValue();//[2] System.out.println("[3] intValue= " + intValue); byte byteValue = integerObject.byteValue();//[4] System.out.println("[5] byteValue= " + byteValue); long longValue = integerObject.longValue();//[6] System.out.println("[7] longValue= " + longValue); int shortValue = integerObject.shortValue();//[8] System.out.println("[9] shortValue= " + shortValue); float floatValue = integerObject.floatValue();//[10] System.out.println("[11] floatValue= " + floatValue); double doubleValue = integerObject.doubleValue();//[12] System.out.println("[13] doubleValue= " + doubleValue); } } |
実行結果
1 2 3 4 5 6 |
[3] intValue= 123 [5] byteValue= 123 [7] longValue= 123 [9] shortValue= 123 [11] floatValue= 123.0 [13] doubleValue= 123.0 |
サンプルプログラムの説明
- [1]valueOfメソッドを使って、文字列「123」で初期化されたintegerオブジェクトを戻す。
- [2]intValueメソッドを使って、integerオブジェクトからint型の値intValueに変換する。
- [3]intValue値を表示する。
- [4]byteValueメソッドを使って、integerオブジェクトからbyte型の値byteValueに変換する。
- [5]byteValue値を表示する。
- [6]longValueメソッドを使って、integerオブジェクトからlong型の値longValueに変換する。
- [7]longValue値を表示する。
- [8]shortValueメソッドを使って、integerオブジェクトからshort型の値shortValueに変換する。
- [9]shortValue値を表示する。
- [10]floatValueメソッドを使って、integerオブジェクトからfloat型の値floatValueに変換する。
- [11]floatValue値を表示する。
- [12]doubleValueメソッドを使って、integerオブジェクトからdouble型の値doubleValueに変換する。
- [13]doubleValue値を表示する。
不正な文字列に対応させる
変換する文字列が整数値でない場合がある。この異常事態に対応するためにNumberFormatException例外が用意されている。それで、この例外に対応する処理を追加することにより、不正な文字列に対応することができる。
1 2 3 4 5 |
try { 正常処理 } catch (NumberFormatException numberFormalException) { 例外処理 } |
書き方の基本はこれだ。
サンプルプログラム
このサンプルプログラムは、文字列からint型に変換するためのparseInt(String s)メソッドを使ったサンプルプログラムである。「1abc23」を変換しようとすると例外が発生する。この時、例外処理に実行が移る。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
public class IllegalStringToInteger { public static void main(String[] args) { parseInt("123");//[1] parseInt("1abc23");//[2] } private static void parseInt(String string) {//[3] try {//[4] int value = Integer.parseInt(string);//[5] System.out.println("[6] string = " + value); } catch (NumberFormatException numberFormalException) {//[7] System.out.println("[8] NumberFormatException発生"); } } } |
実行結果
1 2 |
[6] string = 123 [8] NumberFormatException発生 |
サンプルプログラムの説明
簡単にプログラムの解説をしてゆこう。
- [1] 文字列「123」をparseIntメソッドで数値に変換する。
- [2] 文字列「1abc23」をparseIntメソッドで数値に変換する。
- [3] parseIntメソッドを定義する。
- [4]-[5] parseIntメソッドを使って、変数stringの指す文字列をint型変数valueに変換する。
- [6] valueを表示する。
- [7]-[8] 例外が発生したら、「[8] NumberFormatException発生」を表示する。
まとめ
このページではJavaのIntegerクラスについてご紹介してきた。参考にしていただければ幸いだ。