Преобразовать строку в 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.