Taschenrechner programmieren Java?
Guten Tag, ich möchte einen Taschenrechner in Java programmieren (ohne UI) und finde keinen direkten Ansatz. Ich wollte das man die Zahlen und das Rechensymbol zusammenschreiben kann also z.B. 1+1 und nicht in der einen Zeile das Rechensymbol und in dann die Zahlen. Ich wollte anfangen mit einem Scanner und dann versuchen das gescannten einzeln wiederzugeben um es dann durch ein switch case oder if else system einzeln wiedergeben zu können. Könnte mir da bitte jemand einen Tipp oder Ansatz geben?
Dankeschön und LG
4 Antworten
Hi, du bekommst ja einen beispielhaft so einen String: "14+55"
Du kannst jetzt jedes Zeichen einzeln durchgehen und dir extra irgendwie die Zeichen extrahieren. Ist aber etwas umständlich.
Stattdessen kannst du dir ja mal split() anschauen. Das wäre ein Ansatz, den du fürs erste verfolgen könntest. Schau dir aber genau an, wie das funktioniert und was u.U. schief gehen kann oder so. aber von da aus kannst du dich mal weiter vorhangeln.
einfach fragen, wenn was unklar ist.
Guten Morgen,
SirNik hat eine super Methode bereits gegeben, indem du mit der Schleife durchiterierst - ich würde aber anraten, dass man erst nach Klammern, dann nach Punkt-Zeichen und dann nach Strich-Zeichen schaut und Paare bildet, um die Grundmatheregeln Klammer > Punkt > Strich zu behalten.
.Split finde ich dafür etwas unhandlich, da du so schlecht die Position des Objekts vorhersagen kannst.
Ja, split ginge noch, wenn es nur bei so einfachen Termen wie "operand operator operand" bleibt, wenn operand noch trivial (also nur zahl) ist. Das in Kombination mit replaceAll, um die operanden weg zu bekommen und den operator zu erhalten wäre i.O. dann hätte man in zwei Zeilen die Operanden und den Operator getrennt und könnte mit if oder switch dann tatsächlich rechnen.
Aber das würde natürlich schon etwas Erfahrung mit der StdBib voraussetzen (aber auch fördern). Zum richtig abchecken, was da eigentlich abgeht wäre so händisch natürlich besser.
Du wirst Zeichen für Zeichen durch den String gehen müssen und alles auseinandernehmen, z.B. wenn sich was ändert.
Aber ... ich kenne Java nicht, aber in der .net Umgebung kann man einfache Strings direkt rechnen lassen ;) eventuell findest du ja auch was entsprechendes.
Hi,
Schau doch mal hier auf meinem Github, habe so etwas ähnliches gemacht, die GUI kannst du ignorieren (funktioniert auch ohne) jonasbraus/JavaRechner (github.com)
die Antwort kommt etwas arg spät, aber vielleicht hilft es ja jemand anderem :)