Converter String em int ou Inteiro em Java
1. Introdução
Converter umString em umint ouInteger é uma operação muito comum em Java. Neste artigo, mostraremos várias maneiras de lidar com esse problema.
Existem algumas maneiras simples de lidar com essa conversão básica.
2. Integer.parseInt()
Uma das principais soluções é usar o método estático dedicado deInteger:parseInt(), que retorna um valorint primitivo:
@Test
public void givenString_whenParsingInt_shouldConvertToInt() {
String givenString = "42";
int result = Integer.parseInt(givenString);
assertThat(result).isEqualTo(42);
}
3. Integer.valueOf()
Outra opção seria usar o métodoInteger.valueOf() estático, que retorna uma instânciaInteger:
@Test
public void givenString_whenCallingIntegerValueOf_shouldConvertToInt() {
String givenString = "42";
Integer result = Integer.valueOf(givenString);
assertThat(result).isEqualTo(new Integer(42));
}
4. Construtor deInteger
Você também pode usar o construtor deInteger:
@Test
public void givenString_whenCallingIntegerConstructor_shouldConvertToInt() {
String givenString = "42";
Integer result = new Integer(givenString);
assertThat(result).isEqualTo(new Integer(42));
}
5. Integer.decode()
Além disso,Integer.decode() funciona de forma semelhante aoInteger.valueOf(),, mas também pode aceitarnumber representations diferentes:
@Test
public void givenString_whenCallingIntegerDecode_shouldConvertToInt() {
String givenString = "42";
int result = Integer.decode(givenString);
assertThat(result).isEqualTo(42);
}
6. NumberFormatException
Todos os métodos mencionados acima lançam umNumberFormatException, ao encontrar valoresString inesperados. Aqui você pode ver um exemplo dessa situação:
@Test(expected = NumberFormatException.class)
public void givenInvalidInput_whenParsingInt_shouldThrow() {
String givenString = "nan";
Integer.parseInt(givenString);
}
7. Com goiaba
Obviamente, não precisamos nos ater ao próprio Java principal. É assim que a mesma coisa pode ser alcançada usandoInts.tryParse(), de Guava, que retorna um valornull se não puder analisar a entrada:
@Test
public void givenString_whenTryParse_shouldConvertToInt() {
String givenString = "42";
Integer result = Ints.tryParse(givenString);
assertThat(result).isEqualTo(42);
}
8. Conclusão
Neste artigo, exploramos várias maneiras de converterString instâncias emint ouInteger instâncias.
Todos os exemplos de código podem, é claro, ser encontrados no repositórioGitHub.