Taschenrechner

Murcer

Mitglied
Hallo,
also ich habe folgendes Problem:
In einem JTextField wird eine Aufgabe eingegeben z.B. 5+6! Der User drückt dann auf "=" und das Ergebnis soll in dem JTextField erscheinen.
Ich habe mir jetzt den Inhalt ders TextFields in einer String Variable gespeichert. Wie bekomme ich da jetzt das Ergebnis raus?

Gibt es irgend einen Befehl zwischen String und Int (Also zwischen den Zahlen und den Rechenzeichen) zu Trennen? Wo bei dann das Problem da wäre, dass das ganze als String gespeichert ist.

Hoffe ihr versteht mein Problem.
 

Foermchen82

Top Contributor
Hast du für das "=" einen Button? Wenn ja solltest du es für die Rechenoperationen auch so machen. Dann kannst du dir einfach die Operation merken.
 

Murcer

Mitglied
Ja ich das "=" ist ein Button und die anderen Rechenzeichen auch. Nur würde ich gerne auch die Eingabe per Tastatur ermöglichen....

Wie kann ich denn einstellen das das Textfeld nur ausgelesen aber nicht bearbeitet werden kann? Damit der User keine Bugs verursachen kann, in dem er trotzdem etwas per Testatur eingibt.
 

Wortraum

Bekanntes Mitglied
Wirf mal ein Blick auf die Dokumentation von String:
String (Java Platform SE 6)

Dort könnten Methoden wie split(…), indexOf(…), subString(…) und trim() für Dich interessant sein. Es gibt natürlich zahlreiche Möglichkeiten, Dein Problem zu lösen, aber da probierst Du am besten selbst herum. Eine fertige Methode, die Dir einen String an Operatoren aufteilt, gibt es nicht.

Hier nur ein Beispiel, wie man so etwas machen könnte:
Java:
String input = "23+42";
String[] operands = input.split("\\+");
System.out.println(operands[0]);
System.out.println(operands[1]);
Natürlich muß man noch einiges bedenken. Wie behandelt man verschiedene Operatoren? Was macht man bei einem unbekannten Operator? Was passiert, wenn der Nutzer Leerzeichen ("23 + 42") eingibt?
 
T

Tomate_Salat

Gast
Punkt vor strich, Klammerneingabe und und und. Ein Taschenrechner ist nicht gerade ohne ;-)

Ich würde auch einen Listener auf die TextFeld setzen, welches die Eingabe überprüft, ist ein leerzeichen dabei, sollt er es gleich raushauen, dann sparst du dir die überprüfung nach unbekannten zeichen

MFG

Tomate_Salat
 

FArt

Top Contributor
.... ja, da gibt es noch einiges zu beachten... Punkt vor Strich... Klammerregeln...

Das Thema wurde hier schon oft diskutiert. Suche mal, z.B. mit "Taschenrechner" oder "Formel" oder "rechnen" usw.

in der Regel läuft es auf einen Parser raus, bzw. auf einen Parsergenerator, der einen Parser erzeugt...
 
T

Tomate_Salat

Gast
Es stellt sich eben die Frage, wie weit man gehen möchte. Natürlich kann man den Taschenrechner beliebig aufrüsten, und wenn man dann bei einem vollständigen Algebrasystem angelangt ist, kann man sogar Geld damit machen. :D

:lol: bleib mal auf dem Boden. Vor allem: der TO ist noch bei Addition und du redest hier am besten noch von einem wissenschaftlichen Endprodukt mit nullstellenbestimmung, extremwertbestimmung, gleichungssystem nach X,Y,Z auflösen. ;-)
 

Ein Keks

Bekanntes Mitglied
falls du javascript kennst, java hat einen interpreter dafür so dass du den formelparser davon nutzen kannst:
Java:
import javax.script.*;

        ScriptEngineManager factory = new ScriptEngineManager();
        ScriptEngine engine = factory.getEngineByName("JavaScript");
        System.out.println(engine.eval("2+3*(5-3)"));
dürfte so ziemlich die einfachste möglichkeit sein (auch wenn vllt. nicht die schönste und beste)
 
T

Tomate_Salat

Gast
dürfte so ziemlich die einfachste möglichkeit sein (auch wenn vllt. nicht die schönste und beste)

Finde ich eine schlechte idee, warum? Ganz einfach:

  • Der TO schreibt den Rechner bestimmt als Übung und nicht weil er Ihn unbedingt braucht oder vermarkten will, da gibt es genug andere
  • eval => eine Methode die nicht gerne Benutzt wird.Viele raten davon zurecht ab!
 

Wortraum

Bekanntes Mitglied
Nun ja, sie raten zurecht davon ab, denn viel größer kann eine Sicherheitslücke kaum sein. Das spielt bei diesem Taschenrechner wohl auch keine Rolle, aber man sollte sich so etwas erst gar nicht angewöhnen.
 
T

Tomate_Salat

Gast
baut json nicht komplett auf der eval methode auf?... sprich json string rein-> javascript object raus..

kenne mich mit json nicht viel aus, hatte es heute kurz angeschaut. Aber ich glaube, JSON benutzt ausschließlich regex. Ob es für die Java-version von JSON so ist weis ich nicht :bahnhof:. Falls ja wäre das nicht gerade toll :-/

Wenn es jmd kennt: ich glaube FireBug von Mozilla setzt auf Eval. Da sei es aber weniger weiter schlimm, weil sie eine Console mitliefern in der JS-Code reingeschrieben werden kann, der ausgeführt wird und was da reingeschrieben wird, entscheidet der Benutzer des Browsers. Ansonsten sehe ich keine Notwendigkeit für eine Eval-Funktion.
 

Ein Keks

Bekanntes Mitglied
Hab ja schon dazu geschrieben, dass es nicht beste lösung ist^^
Zum thema sicherheitslücke, ein einfaches regex und das Problem ist (mehr oder weniger) beseitigt, wobei das hier wohl auch nicht nötig sein sollte.
Ich wollte das ganze ja auch nur mal als mögliche Alternative genannt haben, da Java nunmal keinen Formelparser dabei hat und soetwas nicht grade trivial ist.

Und zumindest in Javascript benutzt man für JSON eval ;)
 
T

Tomate_Salat

Gast
Seit wann ist den eine Sicherheitslücke eine alternative oder gar eine Lösung? Ich würde sie eher als Problem bezeichnen ;-)

Nun ja, ich mag die Methode trotzdem nicht, es gibt nur gaaanz wenige Situationen wo ich sagen würde: da ist es ok wenn man sie nutz, aber i.d.R. gibt es immer eine bessere und sichereren Weg. Dieser mag zwar länger sein aber dafür sicherer ;-).
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
L Taschenrechner Problem Java Basics - Anfänger-Themen 4
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
R Operatoren Rechenoperation verwenden für Taschenrechner. Java Basics - Anfänger-Themen 32
S while Schleife Taschenrechner Java Basics - Anfänger-Themen 1
J Taschenrechner mit mehr als 2 Zahlen. Java Basics - Anfänger-Themen 18
R Einfacher Taschenrechner mit Eclipse Java Basics - Anfänger-Themen 3
M Einfacher Taschenrechner Java Basics - Anfänger-Themen 2
Fiedelbambu Prüfen von Komma stelle beim Taschenrechner Java Basics - Anfänger-Themen 5
JordenJost Taschenrechner problem Java Basics - Anfänger-Themen 5
Y Taschenrechner programmieren Java Basics - Anfänger-Themen 3
G Taschenrechner ergibt Fehler in if-Abfrage Java Basics - Anfänger-Themen 6
K Erste Schritte "Taschenrechner" zeigt keine Komma Zahlen an. Java Basics - Anfänger-Themen 8
C Potenzberechnung über switch case. Taschenrechner mit Eingabe über einen grafischen Dialog Java Basics - Anfänger-Themen 22
E JavaFX Taschenrechner Eingabe im Textfield beschränken Java Basics - Anfänger-Themen 2
E Taschenrechner GUI Problem mit Fehlerhandling Java Basics - Anfänger-Themen 6
C Taschenrechner (switch) in Taschenrechner mit Methoden umwandeln Java Basics - Anfänger-Themen 115
W Taschenrechner mit Switch case Java Basics - Anfänger-Themen 4
W Taschenrechner Java Basics - Anfänger-Themen 11
A Taschenrechner mit Gui erstellen Java Basics - Anfänger-Themen 9
2 Taschenrechner mit GUI Problem bei der Berechnung Java Basics - Anfänger-Themen 8
P Taschenrechner mit unendlich vielen Eingabemöglichkeiten Java Basics - Anfänger-Themen 1
V Erste Schritte Taschenrechner mit beliebig vielen Zahlen Java Basics - Anfänger-Themen 5
S Taschenrechner Java Basics - Anfänger-Themen 13
P Taschenrechner Text übertragung Java Basics - Anfänger-Themen 3
S Compiler-Fehler Basic- Taschenrechner/ Fehler Java Basics - Anfänger-Themen 8
S Basic- Taschenrechner? Java Basics - Anfänger-Themen 7
P Hilfe bei Java Taschenrechner Java Basics - Anfänger-Themen 25
F Erste Schritte Frage zu simplem Taschenrechner(switch) Java Basics - Anfänger-Themen 16
L Mein Taschenrechner lässt sich plötzlich nicht mehr öffnen Java Basics - Anfänger-Themen 5
S Taschenrechner hilfe! Java Basics - Anfänger-Themen 17
H Java Taschenrechner Java Basics - Anfänger-Themen 4
R Variablen Taschenrechner mit Komfortfunktionen Java Basics - Anfänger-Themen 2
J RPN Taschenrechner - keine Lösung!! Java Basics - Anfänger-Themen 84
M Java Taschenrechner (if-else) Java Basics - Anfänger-Themen 11
L Taschenrechner mit switch und while funktioniert noch nicht richtig Java Basics - Anfänger-Themen 22
Q simpler Taschenrechner Java Basics - Anfänger-Themen 34
R Taschenrechner NullPointerException Java Basics - Anfänger-Themen 1
R Variablen Weitergehenderr Taschenrechner Java Basics - Anfänger-Themen 4
F Taschenrechner "Error loading class..." Java Basics - Anfänger-Themen 5
M Java Taschenrechner Programmieren Java Basics - Anfänger-Themen 12
P Erste Schritte Taschenrechner mit if-else Anweisung Java Basics - Anfänger-Themen 6
G Taschenrechner gibt nur 0.0 aus Java Basics - Anfänger-Themen 8
A Taschenrechner programmieren Java Basics - Anfänger-Themen 21
Z Java Taschenrechner Java Basics - Anfänger-Themen 6
J Kleiner Taschenrechner! Anfänger braucht Hilfe :( Java Basics - Anfänger-Themen 2
C Taschenrechner in Java Java Basics - Anfänger-Themen 6
J Erste Schritte Java CMD Taschenrechner mit Parametern! Java Basics - Anfänger-Themen 16
J Taschenrechner: Probleme Java Basics - Anfänger-Themen 5
E Taschenrechner problem! Ich komme nicht voran Java Basics - Anfänger-Themen 18
R Erste Schritte Taschenrechner mit Schleife Java Basics - Anfänger-Themen 24
Lord.Djerun (Taschenrechner Netbeans) Komma nur einmal schreiben & 0 ersetzen Java Basics - Anfänger-Themen 1
Z Taschenrechner - Additions/Substraktions/Multiplikations/Divionsketten! Java Basics - Anfänger-Themen 4
D Taschenrechner Frage Java Basics - Anfänger-Themen 12
Z Sehr simpler Taschenrechner - Hilfe! Java Basics - Anfänger-Themen 10
Z Taschenrechner - Wie addiere,multipliziere und subtrahiere ich? Java Basics - Anfänger-Themen 6
D kleiner Taschenrechner mit switch fehlerhaft Java Basics - Anfänger-Themen 1
K Taschenrechner im GUI Java Basics - Anfänger-Themen 2
P Taschenrechner, operatoren Java Basics - Anfänger-Themen 4
D Simpler Taschenrechner Java Basics - Anfänger-Themen 6
A Anfänger Taschenrechner Frage Java Basics - Anfänger-Themen 14
R Erste Schritte Taschenrechner - Punkt-vor-Strich Rechnung Java Basics - Anfänger-Themen 1
S Operatoren Taschenrechner Ergebnis ausgeben Java Basics - Anfänger-Themen 7
A Taschenrechner zeigt Error Java Basics - Anfänger-Themen 7
J Taschenrechner Funktion Java Basics - Anfänger-Themen 18
M Taschenrechner fertigstellung Java Basics - Anfänger-Themen 1
N Methoden Taschenrechner Java Basics - Anfänger-Themen 2
F z = input.nextChar(); PROBLEM Taschenrechner Java Basics - Anfänger-Themen 7
J Scanner Taschenrechner? Java Basics - Anfänger-Themen 7
J Variablen Rechenzeichen und Zahlen verknüpfen für einen Taschenrechner Java Basics - Anfänger-Themen 17
B Klassen Java Taschenrechner mit Klassen und Methoden Java Basics - Anfänger-Themen 12
B Erste Schritte Brauche Hilfe bei einem Java-Taschenrechner Java Basics - Anfänger-Themen 11
R Methoden Taschenrechner Java Basics - Anfänger-Themen 4
P Taschenrechner , IF-Abfrage Java Basics - Anfänger-Themen 12
I Taschenrechner - Methoden implementieren Java Basics - Anfänger-Themen 5
I Java Starthilfe (Taschenrechner) Java Basics - Anfänger-Themen 7
J Taschenrechner Problemchen Java Basics - Anfänger-Themen 3
D Erste Schritte Taschenrechner Java Basics - Anfänger-Themen 11
K taschenrechner - Fehler beim Kürzen eines Bruches finden Java Basics - Anfänger-Themen 20
J Taschenrechner Punkt vor Strich Java Basics - Anfänger-Themen 9
A Taschenrechner programmieren Java Basics - Anfänger-Themen 5
M Ausklappbares Fenster bei grafischem Taschenrechner Java Basics - Anfänger-Themen 2
M Dividieren bei Grafischem Taschenrechner klappt nicht Java Basics - Anfänger-Themen 2
N Taschenrechner mit Unterprogra Java Basics - Anfänger-Themen 6
C Taschenrechner Java Basics - Anfänger-Themen 12
Z Taschenrechner programmieren Java Basics - Anfänger-Themen 5
E Erste Schritte Taschenrechner Java Basics - Anfänger-Themen 8
K Taschenrechner Java Basics - Anfänger-Themen 25
J Textfeld für Taschenrechner Java Basics - Anfänger-Themen 3
D Taschenrechner Java Basics - Anfänger-Themen 28
A Taschenrechner-GUI mit BorderLayout? Java Basics - Anfänger-Themen 6
W [PROJEKT] Simpler grafischer Taschenrechner Java Basics - Anfänger-Themen 8
M Taschenrechner mit JApplet Java Basics - Anfänger-Themen 26
J Grafischen Taschenrechner programmieren - Frage dazu Java Basics - Anfänger-Themen 12
W Taschenrechner Java Basics - Anfänger-Themen 2
T Tasten vom Taschenrechner? Java Basics - Anfänger-Themen 3
S Datentypen Taschenrechner Java Basics - Anfänger-Themen 13
J Taschenrechner Java Basics - Anfänger-Themen 5
J Taschenrechner Java Basics - Anfänger-Themen 9
M While bei einem Taschenrechner Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben