Olá pessoal,
é meu primeiro post no fórum e gostaria de uma ajudinha.
Estou querendo criar um programa que funciona como uma calculadora de expressões matemáticas.
Eu crie uma string que recebe o conteúdo da expressão.
exemplo: 25.2*(3.5+3)/(12-2)
daí eu criei um vetor de strings e quebrei os operandos (números) e operadores com o StringTokenizer.
Até descobri como converter String pra double, o problema é que preciso verificar primeiro se o conteúdo da String é numérico ou não.
Como faço isto?
lucianojs,
pensei em duas formas que tu podes fazer isso.
-
Você pode usar assim. Segue um pequeno exemplo abaixo.
String a = "123456";
String b = "1a2b3c";
double c;
double d;
try {
c = Double.parseDouble(a); // aqui passa
d = Double.parseDouble(b); // aqui lança a exceção
} catch (NumberFormatException nfe) {
// tratar da forma que você achar melhor
}
-
Outra forma que vejo é a seguinte:
Você tem que converter a String em char. E depois fazer um cast para int. O cast serve para converter o char para código ASCII. Segue um pequeno exemplo dessa idéia.
[code]String str = “fsfsf0123sdfs4567sdfsf89”;
char[] caracteres = str.toCharArray();
for (int i = 0; i < caracteres.length; i++)
{
int valor = (int) caracteres[i];
if ((valor >= 48) && (valor <= 57))
{
System.out.println(caracteres[i] + " - valor numérico");
}
else
{
System.out.println(caracteres[i] + " - valor não numérico");
}
}[/code]
Valeu amigo,
achei a solução com tratamento de exceções melhor(evito usar laços sempre que possível).