Por que estou recebendo NumberFormatException ao converter uma string para número?

NumberFormatException ocorre quando tentamos converter uma string para um número, mas o valor não está no formato adequado.

Por que estou recebendo NumberFormatException ao converter uma string para número?

O erro NumberFormatException ocorre quando um valor que não pode ser interpretado como um número é passado para um método de conversão, como Integer.parseInt() ou Double.parseDouble().

Causas comuns do erro NumberFormatException

A string contém caracteres não numéricos. A string está vazia ou nula. A string contém espaços em branco extras. O valor numérico está fora dos limites permitidos pelo tipo de dado.

Exemplo de erro e solução

Código que gera o erro:

public class Exemplo {
    public static void main(String[] args) {
        String numero = "abc";
        int valor = Integer.parseInt(numero); // Lançará NumberFormatException
        System.out.println("Número convertido: " + valor);
    }
}

Correção:

public class Exemplo {
    public static void main(String[] args) {
        String numero = "100";
        try {
            int valor = Integer.parseInt(numero);
            System.out.println("Número convertido: " + valor);
        } catch (NumberFormatException e) {
            System.out.println("Erro: formato inválido para conversão");
        }
    }
}

Como evitar NumberFormatException?

Verifique se a string contém apenas números antes de converter. Use trim() para remover espaços em branco desnecessários. Utilize try-catch para capturar e tratar a exceção de forma adequada. Para conversões seguras, utilize tryParse com bibliotecas de utilitários.

public static Integer converterParaInteiro(String valor) {
    try {
        return Integer.parseInt(valor.trim());
    } catch (NumberFormatException e) {
        return null;
    }
}

Conclusão

O erro NumberFormatException ocorre quando um valor inválido é passado para um método de conversão numérica. Com boas práticas como validação prévia e tratamento de exceções, é possível evitar esse problema e garantir maior estabilidade no código.

O erro NumberFormatException é comum quando trabalhamos com entradas de usuário em aplicações Java. Muitas vezes, valores inesperados podem ser inseridos, causando falhas no programa. Implementar validações adequadas e tratamento de exceções é essencial para evitar esse tipo de problema.

Algumas aplicações:

  • Conversão segura de valores numéricos
  • Evitar falhas em aplicações que processam entrada de dados
  • Garantir maior estabilidade em cálculos matemáticos
  • Validação correta de números em APIs e formulários

Dicas para quem está começando

  • Sempre valide se a string contém apenas números antes de converter
  • Remova espaços em branco desnecessários com trim()
  • Utilize try-catch para evitar que a exceção quebre o fluxo da aplicação
  • Verifique se o número não ultrapassa os limites do tipo de dado

Contribuições de Rodrigo Farias

Compartilhe este tutorial: Por que estou recebendo NumberFormatException ao converter uma string para número

Compartilhe este tutorial

Continue aprendendo:

Como solucionar o erro IllegalArgumentException em Java

IllegalArgumentException ocorre quando um argumento inválido é passado para um método, violando suas restrições esperadas.

Tutorial anterior

Como corrigir o erro ArithmeticException: / by zero em Java

ArithmeticException ocorre quando um número inteiro é dividido por zero, causando uma exceção de execução.

Próximo tutorial