Estou tentando desenvolver um programa básico onde o usuário digita um texto padronizado e o sistema transforma isto em uma formula.
Exemplo.:
Faça um programa onde possui 3 caixas de texto para o usuário digitar algum número e outra caixa para ele digitar a formula, com os dados apresentados o usuário executa o programa que retorna o resultado da conta.
Entrada:
D1 = 2
D2 = 3
D3 = 4
Fórmula = D1 * ( D2/D3)
Como posso criar um método para fazer esta separação?
vamos la
separação do que? se vc tem 3 caixas de texto para cada numero, e uma para a formula, ja esta tudo separado.
o que eu imagino é que vc quer resolver esta formula, por acaso, não?
existem algumas formas de faze-lo.
-
vc cria um analisador sintatico recursivo descendente que entenda o que é essa formula e como resolve-la.
-
vc pode usar a API de Scripting
http://docs.oracle.com/javase/7/docs/technotes/guides/scripting/programmer_guide/
exemplo
/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static void main (String[] args) throws java.lang.Exception{
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
String variables = String.format("var D1 = %d, D2 = %d, D3 = %d;",2,3,4);
String formula = "D1 * ( D2/D3)";
String script = variables + formula;
System.out.println("DEBUG: " +script ); // mostra o que vai fazer. bem util
System.out.println(engine.eval(script)); // imprime o valor que vc quer
}
}
Veja o exemplo rodando aqui:
1 curtida
Vlw, ajudou muito!, consegui fazer utilizando sua resposta