Javaで文字列をintまたは整数に変換する
1. 前書き
StringをintまたはIntegerに変換することは、Javaでは非常に一般的な操作です。 この記事では、この問題に対処する複数の方法を示します。
この基本的な変換に取り組む簡単な方法がいくつかあります。
2. Integer.parseInt()
主な解決策の1つは、Integerの専用静的メソッドparseInt()を使用することです。これは、プリミティブint値を返します。
@Test
public void givenString_whenParsingInt_shouldConvertToInt() {
String givenString = "42";
int result = Integer.parseInt(givenString);
assertThat(result).isEqualTo(42);
}
3. Integer.valueOf()
別のオプションは、静的なInteger.valueOf()メソッドを使用することです。これは、Integerインスタンスを返します。
@Test
public void givenString_whenCallingIntegerValueOf_shouldConvertToInt() {
String givenString = "42";
Integer result = Integer.valueOf(givenString);
assertThat(result).isEqualTo(new Integer(42));
}
4. Integerのコンストラクタ
Integerのコンストラクターを使用することもできます。
@Test
public void givenString_whenCallingIntegerConstructor_shouldConvertToInt() {
String givenString = "42";
Integer result = new Integer(givenString);
assertThat(result).isEqualTo(new Integer(42));
}
5. Integer.decode()
また、Integer.decode()はInteger.valueOf(),と同様に機能しますが、異なるnumber representationsを受け入れることもできます。
@Test
public void givenString_whenCallingIntegerDecode_shouldConvertToInt() {
String givenString = "42";
int result = Integer.decode(givenString);
assertThat(result).isEqualTo(42);
}
6. NumberFormatException
上記のすべてのメソッドは、予期しないString値に遭遇すると、NumberFormatException,をスローします。 ここでは、そのような状況の例を見ることができます:
@Test(expected = NumberFormatException.class)
public void givenInvalidInput_whenParsingInt_shouldThrow() {
String givenString = "nan";
Integer.parseInt(givenString);
}
7. グアバと
もちろん、コアのJava自体に固執する必要はありません。 これは、入力を解析できない場合にnull値を返すGuavaのInts.tryParse(),を使用して同じことを実現する方法です。
@Test
public void givenString_whenTryParse_shouldConvertToInt() {
String givenString = "42";
Integer result = Ints.tryParse(givenString);
assertThat(result).isEqualTo(42);
}
8. 結論
この記事では、StringインスタンスをintまたはIntegerインスタンスに変換する複数の方法について説明しました。
もちろん、すべてのコード例はGitHubリポジトリにあります。