Mit String rechnen

Neue Frage »

Auf diesen Beitrag antworten »
Björn Mit String rechnen

Meine Frage:
Hi zusammen,

den ganzen Tag zerbreche ich mir jetzt schon den Kopf über das Thema, wie ich einen String berechnen kann.

Als Beispiel:

code:
1:
 String test = "123+546+345"; 


Wenn ich versuche den kompletten String zu parsen, bekomme ich eine Exception. Dann dachte ich mir, es mal mit substrings zu versuchen, allerdings sehr aufwendig und ziemlich erfolglos.



Meine Ideen:
Habt ihr vielleicht die zündenen Idee für mich?

Vielen Dank :-)
 
Auf diesen Beitrag antworten »
eulerscheZahl

Kommt ganz darauf an, die komplex der string ist. Wenn es nur + Zeichen sind, tut es ein test.split('+'). Das gibt dir ein Array, wo du die Zahlen einzeln parsen kannst.

Wenn es komplizierter wird (Funktionen, verschachtelte Klammerausdrücke, ...) geht das nicht so einfach, da empfehle ich einen Binärbaum, um die Struktur zu erfassen. Ich habe sowas für die Projektarbeit gebraucht, wenn du willst, kann ich den Code hochladen.
Auf diesen Beitrag antworten »
Björn

Danke für die schnelle Antwort. Leider sind es die 4 Grundrechenarten wo vorhanden sein müssen. Wäre super, wenn du den Code hochladen könntest :-)
Auf diesen Beitrag antworten »
eulerscheZahl

Im Anhang.
Mein Code kann aber einiges mehr, also nicht erschrecken wegen der Länge (>500 Zeilen). Dein Problem kriegt man auch mit weniger gelöst.

Verwendung:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
Parser p = new Parser("123+546+345");
System.out.println(p.calc(new HashMap<String, Double>())); //1014.0

Parser p2 = new Parser("x+3*y");
HashMap<String, Double> input = new HashMap<>();
input.put("x", 2.0);
input.put("y", 3.0);
System.out.println(p2.calc(input)); //11.0

Parser p3 = new Parser("x^3*sin(x)");
System.out.println(p3.derive("x")); //3*x^2*sin(x)+x^3*cos(x)
 
Auf diesen Beitrag antworten »
Björn

Vielen Dank :-)
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »