Foros del Web » Programación para mayores de 30 ;) » Java »

Convertir String en operacion matematica en Java

Estas en el tema de Convertir String en operacion matematica en Java en el foro de Java en Foros del Web. import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; import java.util.Scanner; public class verfuncion{ public static void main(String[] args) { Scanner input = new Scanner (System.in); ScriptEngineManager manager ...
  #1 (permalink)  
Antiguo 18/10/2015, 12:17
 
Fecha de Ingreso: octubre-2015
Mensajes: 1
Antigüedad: 8 años, 6 meses
Puntos: 0
Convertir String en operacion matematica en Java

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import java.util.Scanner;

public class verfuncion{
public static void main(String[] args) {


Scanner input = new Scanner (System.in);

ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");

String funcion;
int a,b;
int[][] i=new int [4][4];

for(a=0;a<4;a++){
for(b=0;b<4;b++){
try {


System.out.println("Introduce la funcion:");
funcion=input.next();

Object result = engine.eval(funcion);
System.out.println(funcion+" = "+result);
i[a][b] = (int) result;

}

catch(ScriptException se) {
System.out.println(se);
}

}
}

for(a=0;a<4;a++){/*Empieza ciclio para imprimir*/
for(b=0;b<4;b++){

System.out.printf("%d",i[a][b]);
}
System.out.printf("\n");
}/*Termina ciclo de impresion*/


}
}



Este es mi código, al correrlo puedo escribir una función y me la realiza por ejemplo
(3+4+2)*(3)
y me dará el resultado "27"
Pero lo que necesito es que al escribir por ejemplo (a+b*4) donde "a" y "b" son unas variables también me las haga validas como números que almacena notaran que esas dos variables son las que manejan el ciclo, alguien podría ayudarme? es urgente :(

Etiquetas: programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:08.