Verificação do conteudo de Strings

2 respostas
lucianojs

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?

2 Respostas

Petronio_Braga

lucianojs,

pensei em duas formas que tu podes fazer isso.

1.

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
}

2.

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.

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");
	    }
	}
lucianojs

Valeu amigo,

achei a solução com tratamento de exceções melhor(evito usar laços sempre que possível).

Criado 17 de março de 2007
Ultima resposta 21 de mar. de 2007
Respostas 2
Participantes 2