Character umwandeln als Double Werte

Fynn

Mitglied
hallo! ich habe ein Stack Programm welches mir eine Rechenoperation durchführt, ich habe dafür die Klasse stack verwendet und ein Input an zahlen als char mitgegeben. Bspw: (8*2)+2/((4/2)*3) und nach jeder Operation wieder aufgestapelt und zwischen gespeichert bis ich keinen char mehr habe. Wenn ich keinen mehr habe dann soll das Ergebnis draufgestapelt und umgewandelt und ausgegeben werden. Jedoch müsste ich das jetzt irgendwie auf ein double wert umwandeln. Das geht so:
Code:
 stack.push(Double.valueOf(String.valueOf(s)));
Wieso muss ich es zuerst in ein String umwandeln und danach erst in ein Double wert? Kann mir das jemand erklären? Und wieso muss ich das überhaupt alles umwandeln? Kann ich das Ergebnis nicht einfach mit der Zwischenspeicher variable ausgeben? Ich weiss sind dumme fragen aber ich will das im Detail verstehen könne und im internet finde ich nichts spezifisch dazu.. Danke schon mal
 

mihe7

Top Contributor
Wenn Du Fragen zu Code hast, musst Du den Code schon posten. So wissen wir noch nicht mal was s ist. Außerdem verstehe ich Deine Beschreibung nicht, da fehlen vermutlich einige Infos, die man im Code finden würde.
 

Fynn

Mitglied
Wenn Du Fragen zu Code hast, musst Du den Code schon posten. So wissen wir noch nicht mal was s ist. Außerdem verstehe ich Deine Beschreibung nicht, da fehlen vermutlich einige Infos, die man im Code finden würde.

Hier ist ein kleiner Teil der die Verständnis fragen lösen sollte:

Java:
   In digits = new In(args[0]);
        Stack <Double> stack = new Stack<Double>();
        double result;

        while(digits.hasNextChar()){
            Character s = digits.readChar();

            if(s.equals('-')){
                double a = stack.pop();
                double b = stack.pop();
                stack.push(b - a);
            
                
            }else{

                stack.push(Double.valueOf(String.valueOf(s)));
            }
        }

        result = stack.pop();
        System.out.println("Das Ergebnis: " + result);
    }
}
 

VfL_Freak

Top Contributor
Moin,

Dein Stack erwartet einen Double-Wert, Du willst aber einen Character hinzufügen, also "Double.valueOf" !
"Double.valueOf" wiederum erwartet einen String, keinen Character, deshalb muss Du "s" umwandeln!

VG Klaus
 

Blender3D

Top Contributor
ich habe ein Stack Programm welches mir eine Rechenoperation durchführt, ich habe dafür die Klasse stack verwendet und ein Input an zahlen als char mitgegeben. Bspw: (8*2)+2/((4/2)*3) und nach jeder Operation wieder aufgestapelt und zwischen gespeichert bis ich keinen char mehr habe.
Ich würde an Deiner Stelle das Ganze über einen kleinen handgeschrieben Parser lösen.

Die Grammatik könnte dabei so aussehen.
Ausdruck -> Term | Ausdruck + Term | Ausdruck - Term
Term -> Faktor | Term * Faktor | Term / Faktor
Faktor -> + Faktor | - Faktor | ( Ausdruck ) | Nummer
Mittels einer rekursiven (ersetzt den Stack) Funktion kann man das dann relativ einfach umsetzen.
Java:
/**
     * Calculates mathematical expression given by a string.
     * < expression -> term | expression '+' term | expression '-' term >
     * < term -> factor | term '*' factor | term '/' factor >
     * < factor -> '+' factor | '-' factor | '(' expression ')'| number
     *
     * @param text
     *            Text to parse.
     * @return double
     */
    public static double evaluate(final String text) {
        ..
    }
 

httpdigest

Top Contributor
Agreed! Ein Recursive Descent Parser ist definitiv der beste Weg hier. Und, wenn du es (meiner Meinung nach "sauber") machen möchtest, dann verwendest du hier einen Parser Generator, wie etwa ANTLR oder javacc, und schreibst eine Grammatik.
Ich hatte noch eine Implementierung von 2016 für eine javacc Grammatik und gleichzeitigem JVM Bytecode-Generator (via ASM) zum effizienten Auswerten eines arithmetischen Ausdrucks: https://github.com/httpdigest/sec/blob/master/src/sec/Grammar.jj
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
halla Character-Array in einen String umwandeln Java Basics - Anfänger-Themen 3
obiwanke Ziffern durch ASCII Character ersetzen Java Basics - Anfänger-Themen 8
B Klasse "Character" Java Basics - Anfänger-Themen 2
O String mit Character vergleichen Java Basics - Anfänger-Themen 3
M Warum werden character, die Leerzeichen sind, nicht korrekt verarbeitet? Java Basics - Anfänger-Themen 2
J String Array zu Map<Character, List<Character>> mit Streams Java Basics - Anfänger-Themen 1
X Gänsefüßchen als invalid character constant Java Basics - Anfänger-Themen 2
K Regex: illegal character range Java Basics - Anfänger-Themen 4
P Wann Byte-Stream und wann Character-Stream? Java Basics - Anfänger-Themen 11
J Variablen Invalid Character - Error -> Spiel mit Variablenergebnissen Java Basics - Anfänger-Themen 8
J Character.getNumericValue Java Basics - Anfänger-Themen 2
K Character in Wörtern vertauschen Java Basics - Anfänger-Themen 11
G Error: "No character data is allowed" Java Basics - Anfänger-Themen 6
A Character einlesen Java Basics - Anfänger-Themen 2
A character einlesen Java Basics - Anfänger-Themen 4
S char Array in Character KlassenArray? Java Basics - Anfänger-Themen 24
H was ist radix in Character.digit(char, int radix) Java Basics - Anfänger-Themen 4
B Datentypen Character überprüfen Java Basics - Anfänger-Themen 3
G Character-orientierte File-Streams mit der Klasse FileReader Java Basics - Anfänger-Themen 5
A Character-Array sortieren￾￾ Java Basics - Anfänger-Themen 8
G Character Encoding Java Basics - Anfänger-Themen 3
T Special Character darstellung Java Basics - Anfänger-Themen 4
C Character to String! Java Basics - Anfänger-Themen 6
M Illegal Escape Character und keine Darstellung? Java Basics - Anfänger-Themen 7
S Character aus Textfeld auslesen Java Basics - Anfänger-Themen 2
S Umwandlung eines Character-Streams in ein Image Java Basics - Anfänger-Themen 17
N String to Character Array... Java Basics - Anfänger-Themen 5
J Space zwischen 2 Character verkleinern Java Basics - Anfänger-Themen 5
R int in Ascci umwandeln Java Basics - Anfänger-Themen 7
I JSON in Objekt umwandeln Java Basics - Anfänger-Themen 3
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
String in ArrayList umwandeln Java Basics - Anfänger-Themen 1
S JAR zu EXE umwandeln Java Basics - Anfänger-Themen 22
JavaBeginner22 Integer in String umwandeln Java Basics - Anfänger-Themen 7
java-starter Erste Schritte Eingabe in Char wert umwandeln Java Basics - Anfänger-Themen 7
K In andere Zahlensysteme umwandeln, wann klappt immer der Trick mit log? Java Basics - Anfänger-Themen 6
E PDF Datei im xfdf-Datei umwandeln und auf dem Laufwerk ablegen Java Basics - Anfänger-Themen 0
Naxon89 Input/Output Ein PDF in einem BLOB umwandeln um ihn dann als PDF wieder anzuzeigen Java Basics - Anfänger-Themen 3
C Rekursive Methode in Interative Methode umwandeln Java Basics - Anfänger-Themen 17
J Dezimalzahl in Bruch Umwandeln und Kürzen Java Basics - Anfänger-Themen 8
C Taschenrechner (switch) in Taschenrechner mit Methoden umwandeln Java Basics - Anfänger-Themen 115
J RSA Verschlüsselung Testen / byte[] in Objekt umwandeln Java Basics - Anfänger-Themen 1
S String umwandeln Java Basics - Anfänger-Themen 6
K String in Integer umwandeln Java Basics - Anfänger-Themen 4
O Datei in mehrere kleine Dateien umwandeln Java Basics - Anfänger-Themen 47
O Einzelne Bits umwandeln und prüfen Java Basics - Anfänger-Themen 23
O von Basis 10 in Basis x umwandeln Java Basics - Anfänger-Themen 5
R Eingabe String umwandeln zu Integer Werten Java Basics - Anfänger-Themen 8
L String in Integer umwandeln Java Basics - Anfänger-Themen 3
I JSON Datei in Array umwandeln Java Basics - Anfänger-Themen 1
W Dezimalzahl in Binär umwandeln - Was sollte ich an meinem Programm verbessern? Java Basics - Anfänger-Themen 5
S \n nicht in Zeilenumbruch umwandeln Java Basics - Anfänger-Themen 5
W Dezimalzahlen in Binärzahl umwandeln. Wie möglich ? Java Basics - Anfänger-Themen 9
Vince42 NIO File Tree in XML umwandeln Java Basics - Anfänger-Themen 10
R Kompletten String umwandeln in Integer Java Basics - Anfänger-Themen 10
P 32 Bit Binärzahl Umwandeln in Dezimal Java Basics - Anfänger-Themen 8
H 32-Bit Zahl (Integer) in eine IPv4 Adresse umwandeln? Java Basics - Anfänger-Themen 2
Orkanson Datentypen Integer in String umwandeln/hinzufügen Java Basics - Anfänger-Themen 3
geekex Double zu String umwandeln in einer Methode Java Basics - Anfänger-Themen 28
MiMa String in Gross und Kleinbuchstaben umwandeln Java Basics - Anfänger-Themen 10
H JCalendar in String umwandeln Java Basics - Anfänger-Themen 9
P Wie kann ich mein Programm zu einer App umwandeln? Java Basics - Anfänger-Themen 4
M Beliebigen Text in *** umwandeln Java Basics - Anfänger-Themen 15
A Rekursion Funktion in eine Iterativ Funktion umwandeln Java Basics - Anfänger-Themen 9
U RegEx alle Kommas bei den Zahlen in Punkt umwandeln Java Basics - Anfänger-Themen 3
E Von Double zu Long umwandeln Java Basics - Anfänger-Themen 9
L String in Binär umwandeln Java Basics - Anfänger-Themen 4
G .java in .jar umwandeln Eclipse Java Basics - Anfänger-Themen 12
W String auf char[] umwandeln Java Basics - Anfänger-Themen 3
K Double Wert runden und in Int umwandeln Java Basics - Anfänger-Themen 7
K For Schleife in While Schleife umwandeln Java Basics - Anfänger-Themen 5
C Array in String umwandeln Java Basics - Anfänger-Themen 5
K Methoden Zahlensysteme umwandeln mittels Rekursion Java Basics - Anfänger-Themen 5
W Wie kann man diesen Code in einen Code umwandeln, der folgendes können sollte? Java Basics - Anfänger-Themen 1
I String zu File umwandeln Java Basics - Anfänger-Themen 2
N Collections String in HashMap umwandeln Java Basics - Anfänger-Themen 3
G tga Datei lesen und in eine matrix umwandeln Java Basics - Anfänger-Themen 1
G Bilddaten in Matrix umwandeln Java Basics - Anfänger-Themen 1
L Java CMD Console in String umwandeln? Java Basics - Anfänger-Themen 2
D String zu int umwandeln Java Basics - Anfänger-Themen 2
D Problem beim umwandeln eines Strings in eine Dzezimalzahl Java Basics - Anfänger-Themen 6
K Wie .java in .jar umwandeln? Java Basics - Anfänger-Themen 5
N Bestimmte Zeichen eines Strings umwandeln Java Basics - Anfänger-Themen 4
W String Array in Int umwandeln um auf Zahl zu überprüfen Java Basics - Anfänger-Themen 4
G double in float umwandeln Java Basics - Anfänger-Themen 2
M csv in xlsx umwandeln Java Basics - Anfänger-Themen 7
F Char in Long umwandeln? Java Basics - Anfänger-Themen 2
D String in FileInputStream umwandeln Java Basics - Anfänger-Themen 2
J Mit Eclipse PLZ in Koordinaten umwandeln und ausgeben Java Basics - Anfänger-Themen 3
A Erste Schritte Buchstaben in zahlen umwandeln Java Basics - Anfänger-Themen 4
T opengl Dreick in einen Würfel umwandeln Java Basics - Anfänger-Themen 0
S Groß bzw. Klein Buchstaben umwandeln (gemischt) Java Basics - Anfänger-Themen 1
D Methode mit mehren Rekursiven aufrufen in Methode mit einem Rekursiven Aufruf umwandeln! Java Basics - Anfänger-Themen 1
V String in Byte umwandeln Java Basics - Anfänger-Themen 11
S Element von List<E> in String umwandeln Java Basics - Anfänger-Themen 3
N Unsymmetrisches mehrdimensionales Array in eindimensionales umwandeln Java Basics - Anfänger-Themen 2
B JPanel/JFrame in ein Applet umwandeln (Webfähig) Java Basics - Anfänger-Themen 7
W Umwandeln von Dezimal in Dual - Ausgabe incl. Rechenschritte Java Basics - Anfänger-Themen 11
AssELAss String in Datum umwandeln Java Basics - Anfänger-Themen 4
J array in String umwandeln Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben