Java de String para Int – Como converter uma String em um Integer

Java de String para Int

Você vai aprender neste artigo a tranformar string para int em java. Objetos de string são representados como uma string de caracteres.

Se você trabalhou em Java Swing, ele possui componentes como JTextField e JTextArea que usamos para obter nossa entrada da GUI. Ele recebe nossa entrada como uma string.

Se quisermos fazer uma calculadora simples usando Swing, precisamos descobrir como converter uma string em um inteiro. Isso nos leva à questão – como podemos converter uma string em um inteiro?

Em Java, podemos usar Integer.valueOf()Integer.parseInt() para converter uma string em um inteiro.

1. Use Integer.parseInt () para converter uma string em um inteiro

Este método retorna a string como um tipo primitivo int . Se a string não contiver um número inteiro válido, ela lançará um NumberFormatException.

Portanto, toda vez que convertemos uma string em um int, precisamos cuidar dessa exceção colocando o código dentro do bloco try-catch.

Vamos considerar um exemplo de conversão de uma string em um int usando Integer.parseInt():

        String str = "25";
        try{
            int number = Integer.parseInt(str);
            System.out.println(number); // output = 25
        }
        catch (NumberFormatException ex){
            ex.printStackTrace();
        }

Vamos tentar quebrar esse código inserindo um número inteiro inválido:

     	String str = "25T";
        try{
            int number = Integer.parseInt(str);
            System.out.println(number);
        }
        catch (NumberFormatException ex){
            ex.printStackTrace();
        }

Como você pode ver no código acima, tentamos converter 25T para um inteiro. Esta não é uma entrada válida. Portanto, ele deve lançar um NumberFormatException.

Aqui está o resultado do código acima:

java.lang.NumberFormatException: For input string: "25T"
	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
	at java.lang.Integer.parseInt(Integer.java:580)
	at java.lang.Integer.parseInt(Integer.java:615)
	at OOP.StringTest.main(StringTest.java:51)

A seguir, consideraremos como converter uma string em um inteiro usando o método Integer.valueOf().

Leia também: Aprender Programação do Zero: Por Onde Começar!

2. Use Integer.valueOf () para converter uma String para Int

Este método retorna a string como um objeto inteiro. Se você olhar a documentação do Java, Integer.valueOf() retorna um objeto inteiro que é equivalente a new Integer(Integer.parseInt(s)).

Colocaremos nosso código dentro do bloco try-catch ao usar este método. Vamos considerar um exemplo usando o método Integer.valueOf():

   String str = "25";
        try{
            Integer number = Integer.valueOf(str);
            System.out.println(number); // output = 25
        }
        catch (NumberFormatException ex){
            ex.printStackTrace();
        }

Agora, vamos tentar quebrar o código acima inserindo um número inteiro inválido:

        String str = "25TA";
        try{
            Integer number = Integer.valueOf(str);
            System.out.println(number); 
        }
        catch (NumberFormatException ex){
            ex.printStackTrace();
        }

Semelhante ao exemplo anterior, o código acima lançará uma exceção.

Aqui está o resultado do código acima:

java.lang.NumberFormatException: For input string: "25TA"
	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
	at java.lang.Integer.parseInt(Integer.java:580)
	at java.lang.Integer.valueOf(Integer.java:766)
	at OOP.StringTest.main(StringTest.java:42)

Também podemos criar um método para verificar se a string passada é numérica ou não antes de usar os métodos mencionados acima.

Eu criei um método simples para verificar se a string passada é numérica ou não.

public class StringTest {
    public static void main(String[] args) {
        String str = "25";
        String str1 = "25.06";
        System.out.println(isNumeric(str));
        System.out.println(isNumeric(str1));
    }
    private static boolean isNumeric(String str){
        return str != null && str.matches("[0-9.]+");
    }
}

O resultado é:

true
true

O método isNumeric() recebe uma string como argumento. Primeiro ele verifica se é null ou não. Depois disso, usamos o método  matches() para verificar se ele contém dígitos de 0 a 9 e um caractere de ponto final.

Esta é uma maneira simples de verificar valores numéricos. Você pode escrever ou pesquisar no Google por expressões regulares mais avançadas para capturar números, dependendo do seu caso de uso.

É uma prática recomendada verificar se a string passada é numérica ou não antes de tentar convertê-la em um inteiro.

Conclusão

Portanto, neste artigo exploramos duas maneiras de converter uma String em um Integer em Java: usando Integer.parseInt() e Integer.valueOf(). Ambos os métodos são eficazes, mas é crucial lidar com a exceção NumberFormatException ao realizar a conversão para evitar erros inesperados em casos de entrada inválida. Demonstramos exemplos práticos de implementação desses métodos, ressaltando a importância de envolver o código em blocos try-catch para tratamento adequado de exceções.

Além disso, discutimos a criação de um método simples, isNumeric(), para verificar se uma String é numérica antes de tentar a conversão. Essa prática é recomendada para garantir a integridade e a consistência do programa, evitando exceções não tratadas.

Então, a habilidade de converter Strings em Integers é fundamental ao lidar com entradas de usuário em muitos contextos de programação, como interfaces gráficas. Manter boas práticas, como verificação de validade da entrada, contribui para a robustez e confiabilidade do código.

Conteúdo em vídeo de string para int em Java

String para int em Java
Rolar para cima