final String verrechnen

abx912

Mitglied
Hallo zusammen!
Folgendes: Ich habe pi (π) und e (Euler) als "public static final String PI = ".." " bzw "public static final String E = "...." " Variablen gegeben. Beide auf seehehr viele Stellen genau.
Mein Programm liest eine Rechenaufgabe als Postfixnotation ein und je nach Rechenzeichen wird dann eine andere Methode aufgerufen und es wird losgerechnet.
Bei Zahlen funktioniert das auch wunderbar, allerdings habe ich jetzt pi und e und ich stehe auf dem Schlauch, wie ich die Eingabe mit den jeweiligen Werten verbinden soll.

Ein Beispiel evtl, um zu verstehen wie das ganze aussieht:
Java:
String [] zahl = "pi 1 +".split("\\s");
        BigDecimal erg, nr;
        
        for (int i=0; i<zahl.length; i++) {
            if(zahl[i].matches( "-?\\d+(\\.\\d+)?")) {
                nr = new BigDecimal(zahl[i]);
                Stapel.push(nr);
            }
            
            else {
                if(zahl[i].equals("+")) {
                    erg = plus(Stapel.pop(), Stapel.pop());
                    Stapel.push(erg);               
                }
            }
        }

Mein erster Gedanke war die if-Abfrage dementsprechend anzupassen, aber nachdem ich wahrscheinlich alles mögliche an Kombinationen ausprobiert habe, musste ich nicht letztendlich geschlagen gegeben.

Meine Frage nun: wie gebe ich dem Programm zu verstehen, dass "pi" auch eine Zahl ist, mit der es rechnen soll ?

Als Ergänzung:
Die Methode "plus" ist mit BigDecimal-Eingabe.
Code:
plus (BigDecimal z1, BigDecimal z2)
Die Zahlen aus der Aufgabe werden auf einem Stapel gespeichert und abgerufen, sobald ein Rechenzeichen gefunden wird.
 
omg, es klappt! Danke!!

sieht bei mir im Code jetzt so aus:
Code:
if(zahl[i].equalsIgnoreCase("PI")) Stapel.push(pi);
pi ist bei mir die BigDecimal Variante von PI.
 

Neue Themen


Zurück
Oben