Taschenrechner programmieren Java?

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.

Woher ich das weiß:Studium / Ausbildung

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.

Woher ich das weiß:Berufserfahrung – 💻 Unternehmensberater (Cloud & Softwareentwicklung)

SirNik  05.08.2022, 10:32

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.

1

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 :)

Woher ich das weiß:eigene Erfahrung