Como converter uma string para número em Java?
Muitas vezes, precisamos converter valores em formato de texto para números em Java, especialmente ao lidar com entradas do usuário ou dados recebidos de APIs. Existem diferentes métodos para essa conversão, dependendo do tipo de número desejado.
1. Convertendo para Inteiro com Integer.parseInt()
O método Integer.parseInt()
é utilizado para converter uma string em um número inteiro.
public class TesteParseInt {
public static void main(String[] args) {
String numeroTexto = "42";
int numero = Integer.parseInt(numeroTexto);
System.out.println("Número inteiro: " + numero);
}
}
Saída esperada:
Número inteiro: 42
Atenção: Se a string contiver caracteres não numéricos (ex: "42a"), ocorrerá uma
NumberFormatException
.
2. Convertendo para Decimal com Double.parseDouble()
Se o número contiver casas decimais, utilizamos Double.parseDouble()
.
public class TesteParseDouble {
public static void main(String[] args) {
String numeroTexto = "3.14";
double numero = Double.parseDouble(numeroTexto);
System.out.println("Número decimal: " + numero);
}
}
Saída esperada:
Número decimal: 3.14
3. Usando Integer.valueOf()
e Double.valueOf()
Além de parseInt()
e parseDouble()
, podemos usar valueOf()
, que retorna um objeto Integer
ou Double
em vez de um valor primitivo.
Integer numeroInt = Integer.valueOf("100");
Double numeroDouble = Double.valueOf("2.5");
4. Lidando com Erros na Conversão
Para evitar erros ao converter strings inválidas, utilizamos try-catch
.
public class TesteConversaoSegura {
public static void main(String[] args) {
String entrada = "ABC";
try {
int numero = Integer.parseInt(entrada);
System.out.println("Número convertido: " + numero);
} catch (NumberFormatException e) {
System.out.println("Erro: A string não é um número válido.");
}
}
}
5. Convertendo de Forma Flexível com BigDecimal
Para cálculos financeiros, recomenda-se BigDecimal
, pois evita problemas de precisão.
import java.math.BigDecimal;
public class TesteBigDecimal {
public static void main(String[] args) {
String valor = "1234.56";
BigDecimal numero = new BigDecimal(valor);
System.out.println("Número BigDecimal: " + numero);
}
}
6. Quando Usar Cada Método?
Método | Tipo de Número | Retorno |
---|---|---|
Integer.parseInt() |
Inteiros | int |
Double.parseDouble() |
Decimais | double |
Integer.valueOf() |
Inteiros | Integer (Objeto) |
Double.valueOf() |
Decimais | Double (Objeto) |
BigDecimal |
Valores financeiros | BigDecimal |
Conclusão
Converter strings para números em Java é uma tarefa essencial para manipulação de dados. O uso adequado de parseInt()
, parseDouble()
e BigDecimal
garante precisão e segurança ao processar entradas numéricas em aplicações Java.
Por que a conversão segura de strings para números é essencial em Java?
A conversão de strings para números é essencial em qualquer aplicação que processe entradas do usuário ou dados de arquivos e bancos de dados. Frameworks como Spring Boot lidam com isso constantemente ao receber dados de formulários e APIs. Além disso, sistemas financeiros dependem de conversões precisas, tornando BigDecimal
uma opção comum para cálculos monetários. Evitar erros de conversão melhora a confiabilidade do software e evita falhas inesperadas.
Algumas aplicações:
- Processamento de entradas do usuário em formulários
- Leitura de arquivos contendo dados numéricos
- Conversão de valores recebidos via API
- Cálculos financeiros utilizando BigDecimal
Dicas para quem está começando
- Use
parseInt()
para inteiros eparseDouble()
para decimais - Utilize
try-catch
para evitar erros ao converter strings inválidas - Prefira
BigDecimal
para valores financeiros - Teste suas conversões antes de utilizá-las em operações matemáticas
- Evite converter strings vazias ou nulas para evitar exceções
Contribuições de Rodrigo Farias