Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Calcular un texto

Hola que tal? quisiera que me ayuden con un programa q estoy haciendo, en donde tengo un texto ingresado en un JTextField ej: 8*4/2 en donde son operaciones, y hasta que se presione un boton debe entregar la respuesta, en este caso multiplicar 8*4=32 y dividirlo por 2, o sea imprimir 16. De antemano gracias

noviembre 23, 2013 | Registered Commenterwadegm

Buenas,

Lo que pides no es algo trivial, ya que tienes que parsear ese string con algún analizador sintáctico que interprete la expresiones. Pero por lo que he visto en san stackoverflow tienes suerte, ya que hay librerías que lo hacen:
http://www.objecthunter.net/exp4j/

O también puedes utilizar la capacidad de Java 7 de invocar un motor embebido de scripting. En tu caso, este sería el código:


import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;


public class CalculateString {
public static void main(String [] args) throws ScriptException{
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
String expresion = "8*4/2";
System.out.println(engine.eval(expresion));
}
}

Un saludo

noviembre 23, 2013 | Unregistered CommenterUnoPorAhi

Ah! se me olvidab. Si te quieres hacer tu desde 0 el algoritmo para interpretar las expresiones, este es tu link para comenzar:
http://en.wikipedia.org/wiki/Shunting-yard_algorithm

Un saludo

noviembre 23, 2013 | Unregistered CommenterUnoPorAhi

Muchas gracias! funciono perfecto. Estuve tratando muchas veces y no sabia como, te pasaste =) Saludos

noviembre 23, 2013 | Registered Commenterwadegm