Frage an java, string, math, operation – Kann ich eine Zeichenfolge in eine mathematische Operation in Java konvertieren?

7

kann ich eine Zeichenfolge wie "3 * 3 + 3" in eine mathematische Operation in Java konvertieren?

Deine Antwort

2   die antwort
3

Sie müssten einen Parser implementieren. Sie können jedoch auch nach einem fertigen Projekt suchen, z. B .:http://sourceforge.net/projects/jep/ oderhttp://code.google.com/p/symja/wiki/MathExpressionParser

@Marko - kannst du das erklären? Brian Agnew
du meinst JavaScript Engine? Es funktioniert, aber ich denke, es ist zu viel Aufwand und die Funktionalität ist begrenzt. Es ist besser, spezialisierte Bibliotheken zu verwenden. Elchin
@BrianAgnew Schauen Sie sich die am besten bewertete Antwort an. Es sei denn, Sie glauben wirklich, dass es sich bei der Frage um eine handeltDarstellung des Ausdrucks, den ich bezweifle. Aber darüber muss man sich nicht streiten. Marko Topolnik
Wenn du es brauchst, dann ja. OP hat es jedoch nicht motiviert und die Behauptung, dass es keine eingebaute Funktion gibt, ist irreführend - es sei denn, Sie interpretieren die Frage so, dass es um die Darstellung des Ausdrucks geht, nicht um das Ergebnis. Marko Topolnik
11

Bewerten Sie es als JavaScript mitScriptEngine

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

Referenz:Dokumentation

Dies ist möglicherweise sehr gefährlich und setzt voraus, dass Sie der Quelle der xyz-Zeichenfolge vollständig vertrauen. Dies ermöglicht die Ausführung von JavaScript. Versuchen Sie beispielsweise, die Einstellungen xyz auf "while (true);" zu setzen. Sehenstackoverflow.com/questions/1601246/… . johusman
Ich weiß, worauf du hinauswillst. In diesem Fall sollte xyz mit Regex abgeglichen werden, um sicherzustellen, dass es nur Zahlen und mathematische Operatoren enthält Anirudh Ramanathan

Verwandte Fragen