Pergunta sobre string, math, operation, java – Posso converter uma string para uma operação matemática em java?

7

posso converter uma string como "3 * 3 + 3" para operação matemática em java?

Sua resposta

2   a resposta
3

Não há função interna para isso, você teria que implementar um analisador. No entanto, você também pode procurar um projeto pronto, como:http://sourceforge.net/projects/jep/ ouhttp://code.google.com/p/symja/wiki/MathExpressionParser

@Marko - você pode elucidar? Brian Agnew
Se você precisar, então sim. OP não o motivou, no entanto, e a alegação de que não há função embutida é, bem, enganosa - exceto se você escolher interpretar a questão como sendo a representação da expr, não o seu resultado. Marko Topolnik
quer dizer JavaScript Engine? Isso funciona, mas eu acho que é muito de uma sobrecarga e a funcionalidade é limitada. É melhor usar bibliotecas especializadas. Elchin
@BrianAgnew Basta olhar para a resposta mais votada. Exceto se você realmente acredita que a questão é sobre como obter umrepresentação da expressão, que eu duvido. Mas não há necessidade de argumentar sobre isso. Marko Topolnik
11

Avaliar é como JavaScript usandoScriptEngine

String xyz = "3*3+3";
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine se = manager.getEngineByName("JavaScript");        
Object result = se.eval(xyz);

Referência:Documentação

Isto é potencialmente muito perigoso, e assume que você confia na fonte da string xyz completamente. Isso permite a execução de qualquer JavaScript. Por exemplo, tente configurações xyz para "while (true);". Vejostackoverflow.com/questions/1601246/… . johusman
Eu vejo seu ponto. Neste caso, xyz deve ser correspondido usando regex, para garantir que contenha apenas números e operadores matemáticos Anirudh Ramanathan

Perguntas relacionadas