Separar Cadenas Alfanumericas
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?
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?
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);
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);
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.
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.