конвертировать строку в int или целое число в Java

Преобразовать строку в int или целое число в Java

1. Вступление

ПреобразованиеString вint илиInteger - очень распространенная операция в Java. В этой статье мы покажем несколько способов решения этой проблемы.

Есть несколько простых способов справиться с этой основной конверсией.

2. Integer.parseInt()с

Одним из основных решений является использование специального статического метода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с

Все упомянутые выше методы выдаютNumberFormatException, при обнаружении неожиданных значенийString. Здесь вы можете увидеть пример такой ситуации:

@Test(expected = NumberFormatException.class)
public void givenInvalidInput_whenParsingInt_shouldThrow() {
    String givenString = "nan";
    Integer.parseInt(givenString);
}

7. С гуавой

Конечно, нам не нужно придерживаться самого ядра Java. Вот как того же можно достичь с помощьюInts.tryParse(), Guava, который возвращает значениеnull, если не может проанализировать ввод:

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

    Integer result = Ints.tryParse(givenString);

    assertThat(result).isEqualTo(42);
}

8. Заключение

В этой статье мы изучили несколько способов преобразования экземпляровString в экземплярыint илиInteger.

Все примеры кода, конечно же, можно найти в репозиторииGitHub.