Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Theoretische Informatik » Logik » Mit String rechnen » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Mit String rechnen
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Björn
unregistriert
Mit String rechnen Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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 :-)
04.06.2015 19:24
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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.

__________________
Syntax Highlighting fürs Board (Link)
04.06.2015 19:58 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Björn
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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 :-)
04.06.2015 20:01
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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)


Dateianhang:
zip Parser.zip (3,13 KB, 376 mal heruntergeladen)


__________________
Syntax Highlighting fürs Board (Link)

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von eulerscheZahl: 04.06.2015 20:16.

04.06.2015 20:15 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Björn
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Vielen Dank :-)
04.06.2015 20:29
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Theoretische Informatik » Logik » Mit String rechnen