Java - Evaluar una expresión. Por ej: "1+2"

 
Vista:

Evaluar una expresión. Por ej: "1+2"

Publicado por Lucas (1 intervención) el 30/11/2005 11:56:12
Hola, quisiera saber como se puede hacer para evalar este tipo de expresiones...

Por ejemplo, evaluar "(3+(2*6))" o "8+3/4-5"

Cualquier información se la agradecería.....

Lucas
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

RE:Evaluar una expresión. Por ej:

Publicado por Yamil Bracho (2315 intervenciones) el 30/11/2005 13:46:59
Lucas, tendrias que hacer un evaluador de expresiones. Este algoritmo se estudia en los cursos de estructura de datos, donde el enfoque es convertir a postfijo y usar un stack para hacer la evaluacion de la expresion.
Te recomiendo el Libro de Estructruras de datos de Tenembaum o tambien El Arte de Programar en Java de Schildt.
Por supuesto debe existir alguna biblioteca de clases que haga lo que quieres, posiblemente en el website de Jakarta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

evaluador de expresiones

Publicado por Cesar (2 intervenciones) el 03/04/2008 21:55:45
Dónde puedo encontrar algo sobre el avaluador de expresiones de java? tanto del sintáctico como del lexico, tengo que hacer una bateria de pruebas y no sé ni cómo funciona este evaluador. Gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Evaluar una expresión. Por ej:

Publicado por kykio (1 intervención) el 30/11/2005 21:19:31
También podrías hacer un evaluador de expresiones aritméticas con un árbol binario, en cuyas hojas estén los números y en las raíces los operadores (según prioridades)

por ej

3*(4-2)


*
/ \
3 -
/ \
4 2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE y Pregunta:Evaluar una expresión.

Publicado por sudoman (10 intervenciones) el 01/12/2005 01:29:48
Se me ocurre otra solucion que quiza no le sirva a Lucas y que me plantea un problema: llamar a un programa externo para hacer el trabajo.
Corriendo sobre UNIX (Linux, Solaris, FreeBSD...), se trata de utilizar el comando expr que evalua expresiones y te devuelve el resultado.

Hay que llamar a un programa externo utilizando Runtime (pongo un ejemplo con ls):

Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("ls");
BufferedReader br= new BufferedReader( new InputStreamReader( proc.getInputStream() ) );
String resultado = br.readLine();

------------
Hasta aqui mi respuesta. Y ahora mi problema. Lo acabo de intentar, y no consigo pasarle a expr los caracteres especiales como $, " y `, imprescindibles para evaluar la expresion. Si pudiera, el problema estaria resuelto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

RE:RE y Pregunta:Evaluar una expresión.

Publicado por Yamil Bracho (2315 intervenciones) el 01/12/2005 21:08:33
Como dice el dicho "Hay varias maneras de pelar un gato". Puedes usar la opcion que mencionas o usar Groovy o algun otro lenguaje para hacer scripting con Java o usar una biblioteca de clases como JEP (https://sourceforge.net/projects/jep/)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar