Separar Cadenas Alfanumericas

Kaos
27 de Octubre del 2003
Necesito ayuda, pues necesito separar una cadena
del estilo:

"2x*2-12x*3+5x*4"

en secciones tales que pueda obtener los coeficientes y los exponentes de la ecuacion para estos ingresarlos a una lista y ya trabajar con ellos....

Alguien sabe como puedo hacerlo?

concorde
27 de Octubre del 2003
Puedes usar el método substring de la clase String para capturar subcadenas, y una vez hecho eso convertir esos valores a enteros con Integer.parseInt(nombreCadena). Ejemplo:

String cadenaCompleta="x=25+3";
String operando1=cadenaCompleta.substring(2,4); //25
String operando2=cadenaCompleta.substring(5,6); //3
int valor1=Integer.parseInt(operando1);
int valor2=Integer.parseInt(operando2);


chuidiang
27 de Octubre del 2003
Hacer esto bien y que no falle en ningún caso puede costarte un poco. La idea sería la siguiente.

Con la clase StringTokenizer() puedes partir la cadena en cachos usando uno o más caracteres como separadores. Como primer paso, debes obtener los tokens separando por los + y los -

Sería algo asi como esto

StringTokenizer separador = new StringTokenizer ("x**2+3*x+2", "+-");
while (separador.hasMoreTokens())
{
String sumando = separador.nextToken();
}

En sumando irias obteniendo los "x**2", "3*x", etc.

Con cada uno de estos deberías repetir separando por los *, los elevados, etc, etc.

Espero que con la idea tengas suficiente.

Se bueno.