StringTokenizer...me ajudem por favor

Bem estou querendo fazer o seguinte: Ao Digitar uma String tipo: (124)+3(3+488)…gostaria que retornasse os caracteres individuais como por exemplo…(, 12, *, 4, ), +, 3, *, (, 3, +, 488…entenderam ?
Tudo separado…os parenteses, os operadores e os numeros…como faço isso?..será q vcs tem como postar um algoritma para q eu possa resolver esse problema ?

Fiz com a class new StringTokenizer("*/±()")…mas desse jeito so me retorna os numeros…mas eu preciso tbm dos operadores e dos parenteses…na mesma ordem q aparecem na String…e agora ?

Sabes o que é um autômato de estado? Podes fazer um mini analisador léxico para separar as estruturas da tua expressão. Faz tempo que passei pela disciplina de compiladores mas lembro que dá pra fazer assim. T+

Ola,

String str... char[] caracteres = str.toCharArray(); for(char c : caracteres){ System.out.println("c = "+c); }

Bruno…esse teu código não funciona para números com dois ou mais digitos…por exemplo…488 …ele vai retornar o 4, o 8 e o 8 separados…eu quero q me retorne tudo junto…entendeu…?

E aí algúem mais pra resovel esse problema ?

Olá…

Pelo que vi nos posts acima, precisara primeiro identificar somente os números, o seja… use a classe Character para fazer isso, acho que alguma implementação como…

for(int i=0;suaString.length();i++) { if(Character.isDigit(suaString.charAt(i))) // O caracter é um número }
Com isso vc irá conseguir idenficicar os números, entao ai é so ir colocando o tratameto para as , e outras coisas.

Acho q vcs não estão entendendo o q eu estou querendo…

Se o algoritmo for pegar cada caractere de uma String(como vcs demonstraram aí em cima) vai dar erro de lógica…Pq ?..Pq isso só funciona para números de 1 dígito…se a minha expressao tiver um numero de 2 dígitos, por exemplo 25, ele vai considerar o 2 como um dígito e o 5 como outo dígito…mas o que eu tô querendo é q ele considere o 25 todo…entenderam ?..

Não só considerar os números como tambem considerar os operadores e os parenteses tambem…