Javaで文字列をintまたは整数に変換する

Javaで文字列をintまたは整数に変換する

1. 前書き

Stringintまたは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リポジトリにあります。