1前書き


String



int

または

Integer

に変換することは、Javaでは非常に一般的な操作です。この記事では、この問題に対処するための複数の方法を紹介します。

この基本的な変換に取り組む簡単な方法がいくつかあります。


2

Integer.parseInt()


主な解決策の1つは、

Integer

の専用静的メソッドを使用することです。

プリミティブな

int

値を返す

parseInt()

@Test
public void givenString__whenParsingInt__shouldConvertToInt() {
    String givenString = "42";

    int result = Integer.parseInt(givenString);

    assertThat(result).isEqualTo(42);
}


3

Integer.valueOf()


もう1つの選択肢は、

Integer

インスタンスを返す静的

Integer.valueOf()

メソッドを使用することです。

@Test
public void givenString__whenCallingIntegerValueOf__shouldConvertToInt() {
    String givenString = "42";

    Integer result = Integer.valueOf(givenString);

    assertThat(result).isEqualTo(new Integer(42));
}


4

Integer

’sコンストラクタ


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()

と同様に機能しますが、異なるhttps://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#も受け入れることができますdecode(java.lang.String)[数値表現]:

@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自体に固執する必要はありません。これは、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

インスタンスに変換する複数の方法について説明しました。

もちろん、すべてのコード例はhttps://github.com/eugenp/tutorials/tree/master/java-strings[GitHub]リポジトリにあります。