Verificação do conteudo de Strings

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).