Taschenrechner problem! Ich komme nicht voran

Hi, ich habe vor etwa einer Woche richtig mit Java angefangen und hatte schon vorher ein paar Grundkentnisse.
Dennoch hab ich ab und zu Probleme beim Programmieren und jetzt erlebe ich eine Phase in der ich gar keine Ahnung habe wie ich voran kommen soll :/ Meine Aufgabe lautet (Hab sie mir selber gegeben) : Einen Taschenrechner programmieren (Ohne GUI/Mit Konsole) Und nicht ein simplen Taschenrechner wie 1+1 = 2. Ich wollte einen Programmieren, dass mir ermöglicht sowas hier zu schreiben "2+3*5" und das mir die Konsole "17" ausspuckt oder "25" je nach dem ob mit oder ohne Punkt-vor-Strich Regel.
Ich habe bisher nur den Scanner zur Eingabe und ArrayList benutzt doch ich bin stecken geblieben mit dem Problem, dass ich nicht weiss wie ich die Zeichen, die ich als String eingescannt habe in Integer oder Char umwandeln kann. Ich habe bereits an switch oder If-Else gedacht aber ich glaube es gibt eine Lösung, die nicht so viel Aufwand benötigt.

Was ich bisher gemacht habe :
_______________________________________________________
Java:
import java.util.ArrayList;
import java.util.Scanner;

public class Taschenrechner {
	public static void main(String [] args) {
		ArrayList<String> liste = new ArrayList<String>();
		Scanner scannerVariable = new Scanner(System.in);
		String zeichen;
		zeichen = scannerVariable.nextLine();
		liste.add(zeichen);
		int zahl;
		char Operatoren;
		int ergebnis;
		for (int i=0; i<zeichen.length(); i++) {
			System.out.print(zeichen.charAt(i));
		}
	}
}
_
__________________________________________________________
Ich weiss es ist relativ wenig .

Ihr müsst nicht einen neuen Code schreiben oder sonst was ich brauch nur eine kleine Hilfe um auf die richtige Spur zurück zu kehren.

Danke im voraus :)
Edit: Ist es auch möglich das man soviel schreiben kann wie man will und dass das Programm selbstständig Variablen deklariert und einen Wert gibt um die dann später auszurechnen ? Als Beispiel : 2+3+4+5*2/3-5 usw.
 
Zuletzt bearbeitet:
okay danke aber wie soll ich das jetzt anwenden ? Es klingt für mich als Newbie würde ich mal sagen schon ziemlich kompliziert und ehrlich gesagt verstehe ich gar nichts von diesem toCharArray und valueOf. Oder besser gesagt ich habe keinen Schimmer wie ich das anstellen soll. (Wie gesagt vor einer Woche angefangen)
 

Joose

Top Contributor
Naja du hast selbst gesagt du weißt nicht wie du den eingelesenen String umwandeln kannst du Integer bzw. Character.
Mit diesen beiden Methoden ist es möglich.

Hier ein Beispiel zur Anwendung:
Java:
String zahlAlsText = "3648";
int zahl = Integer.valueOf(zahlAlsText);

String vorzeichenAlsText = "+";
char vorzeichen = vorzeichenAlsText.toCharArray()[0];

Anmerkung zu "toCharArray()": Diese Methode gibt dir ein Array zurück damit du auf den eigentlich "Character" zugreifen kannst musst du noch per Index diesen "auswählen" (das entspricht "[0]")
In diesem Rahmen solltest du dir die Grundlagen von Arrays anschauen und mit diesen üben bevor du mit deinem Projekt weitermachst.
 
Achso jetzt versteh ich das ganze :) Danke vielmals ich werde versuchen das mal anzuwenden.
Ich bedanke mich schonmal und falls jemand eine andere Idee dazu hat würde ich mich freuen Alternativen zu kennen.
 

Java20134

Bekanntes Mitglied
Wenn du einen String in eine Zahl umwandeln willst kannst du folgende Methode nehmen:
Java:
Zahlentyp.parseZahlentyp(String s);

Wenn du das aber anderstrum machen willst, dann kannst du folgende Methode nehmen:
Java:
Zahlentyp.toString(Zahl von dem Zahlentyp);
 

Java20134

Bekanntes Mitglied
Zum Kommentar 4: Wenn du immer wieder das ganze in ein Array umwandelst brauchst du immer wieder Arbeitszeit. Deshalb würde ich mir einfach ein char Array anlegen und dann jedes einzelne Vorzeichen speichern.
PS.: Nur dann, wenn man mehrere Vorzeichen hat, sonst ist es nicht gerade sinnvoll.
 

Joose

Top Contributor
Zum Kommentar 4: Wenn du immer wieder das ganze in ein Array umwandelst brauchst du immer wieder Arbeitszeit. Deshalb würde ich mir einfach ein char Array anlegen und dann jedes einzelne Vorzeichen speichern.

War ja auch eher nur als Beispiel gedacht wie es generell funktioniert mit dieser Methode.

An den TO: Mir ist eine einfachere Möglichkeit eingefallen an den char ranzukommen.
String (Java Platform SE 7 ) mit dieser Methode geht das ganze einfacher ;)
 

Java20134

Bekanntes Mitglied
Das ist mehr als Ergänzung dazu gedacht. Es funktioniert ja alles beides gleich und die Unterschiede werden dnek ich auch mal nicht so extrem groß sein. Einfach mal ausprobieren.
 
Hallo nochmal ich arbeite gerade wieder daran und wollte wissen ob es sinnvoll ist die zeichen die ich mit den scanner ingelesen habe (als String) mit einem switch zu "filtern" sodass ich zahl von rechenoperation trennen kann. Oder gibt es eine bessere methode das zu machen ?
Aber bitte kein if-else ich habe mir Gestern abend den kopf damit zerissen :p


Edit: bzw. ich bin auf die Contains funktion gestolpert .. gibt es eine Möglichkeit das anzuwenden ? oder gibt es bestimmte Bedingungen zum Anwenden ? (oder braucht man einfach skills ? :p)
 
Zuletzt bearbeitet:

Java20134

Bekanntes Mitglied
Ja das wäre schon sinnvoll und man kann das ganze Zeile schreiben. Ich würde das so machen, dass du einen String einliest und dann splittest du ihn:
Java:
String str; 
//Einlesen des Strings
String[] strMathe = str.split(" ");
ACHTUNG: Die Methode split kannst du nur so verwenden, dass sie sich ab un dbis zu einem Zeichen spaltet. Bei mir ist es jetzt ein Leerzeichen, deshalb müsste deine EIngabe dann so aussehen: 1_+_2. Die _ sind dabei immer Leerzeichen und dadurch bekommst du ein CharArray: [1],[+],[2].
 

Java20134

Bekanntes Mitglied
Ich habe das Programm mal geschrieben. Du musst aber unbedingt darauf achten, dass du die Form beachtest:
Java:
import java.util.Scanner;

public class Main {
	
	private Scanner sc;  

	public static void main(String[] args){
		new Main(); 
	}
	
	private Main(){ 
		sc = new Scanner(System.in);

		System.out.println(solveEquation(readEquation()));  
	}
	
	private String[] readEquation(){
		System.out.println("Geben Sie eine Gleichung mit folgendem Schema ein: \"x_+_y_*_z\"");
		return sc.nextLine().split(" "); 
	}
	
	private double solveEquation(String[] str){
		double ergebnis = Double.parseDouble(str[0]);  
		
		for(int i = 0; i < str.length; i++){
			if(i%2 != 0){
				switch(str[i]){
				case "+": ergebnis += Double.parseDouble(str[i+1]);					
					break; 
				case "-": ergebnis -= Double.parseDouble(str[i+1]);	
					break; 
				case "*": ergebnis *= Double.parseDouble(str[i+1]);	
					break; 
				case "/": ergebnis /= Double.parseDouble(str[i+1]);	
					break; 
				}
			}
		}
		
		return ergebnis; 
	}
}
 
Zuletzt bearbeitet:

Java20134

Bekanntes Mitglied
Ich habe das ganze Programm mal noch ein klein wenig verbessert:
Java:
import java.util.Scanner;

public class Main {
	
	private Scanner sc;  

	public static void main(String[] args){
		new Main(); 
	}
	
	private Main(){ 
		sc = new Scanner(System.in);
		
		System.out.println(solveEquation(readEquation()));  
	}
	
	//Einlesen einer Gleichung aus der Konsole
	private String[] readEquation(){
		System.out.println("Geben Sie eine Gleichung mit folgendem Schema ein: \"x_+_y_*_z\"");
		return (sc.nextLine().trim()).split(" "); //String wird in einem Array gebündelt + Leerzeichen am Anfang/Ende gelöscht
	}
	
	//Lösen einer Gleichung durch die Übergabe eines String Arrays
	private double solveEquation(String[] str){
		try{
			double ergebnis = Double.parseDouble(str[0]); //erste Zahl wird umgewandelt 
		
			for(int i = 0; i < str.length; i++){
				if(i%2 != 0){ //Es muss ein Rechenzeichen sein. 
					switch(str[i]){
					case "+": ergebnis += Double.parseDouble(str[i+1]);					
						break; 
					case "-": ergebnis -= Double.parseDouble(str[i+1]);	
						break; 
					case "*": ergebnis *= Double.parseDouble(str[i+1]);	
						break; 
					case "/": ergebnis /= Double.parseDouble(str[i+1]);	
						break; 
					default: throw new Exception("Es ist keine Operation gegeben oder die Eingabe ist falsch!"); 
					//Erstelle eine neue Exception bei einer falschen Angabe
					}
				}
			}
			
			return ergebnis; 
			
		} catch(NumberFormatException e){
			System.err.println("Die Eingabe entspricht nicht den Anforderungen!");
		} catch (Exception e) {
			System.err.println(e.getMessage());
		}
		
		return Double.NaN; //Es kam irgendwo zu einer Exception
	}
}
Die Zeile 29 könnte man noch etwas verbessern, damit man dort nicht so von der richtigen Eingabe abhängig ist.
 
Zuletzt bearbeitet:
Danke Danke ich hatte das mal gemacht und als ich es kompiliert habe standen viele viele Fehlermeldungen :p war kurz vorm ausflippen weil nach jedem Lösen der Fehler kam eine neue . Du kriegst ein TOP von mir :).
Und ich bedanke mich auch bei den anderen Beteiligten für eure Hilfe und schnelle Antwort.

LG ExceptionError
 
Und wieder mal Hallo ! Ich weiss ich wirke jetzt mit Zeit nervend :p aber es ist eine Ja Nein Frage.
Kann ich mit der String.contains(...) Funktion mehrere Charactere raus filtern ?
Ich versuche sowas hier zu schreiben
Java:
// BLA BLA BLA
          if (String.contains([+,*,/,-])) { // Ein RegEx und If methode in For Schleife.
                   liste.add(Die jeweilige Operation bei i= Zahl); // In dem Fall : Liste für RechenOperatoren
          }
// BLA BLA BLA

Sonst müsste ich für jede einzelne Zahl/Operation eine if methode erstellen und das ist einfach nur Aufwand meiner Meinung nach.

Ihr müsst nur Ja oder Nein Antworten.
Gibt es eine Möglichkeit das zu erstellen :p .
Das war dann auch das letzte "Hallo nochmal" von mir.

Gruß ExceptionError
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Taschenrechner Problem Java Basics - Anfänger-Themen 4
JordenJost Taschenrechner problem Java Basics - Anfänger-Themen 5
E Taschenrechner GUI Problem mit Fehlerhandling Java Basics - Anfänger-Themen 6
2 Taschenrechner mit GUI Problem bei der Berechnung Java Basics - Anfänger-Themen 8
F z = input.nextChar(); PROBLEM Taschenrechner Java Basics - Anfänger-Themen 7
A Taschenrechner - Problem mit zwei Klassen Java Basics - Anfänger-Themen 6
I Problem Taschenrechner Java Basics - Anfänger-Themen 6
S Taschenrechner problem Java Basics - Anfänger-Themen 4
Z Taschenrechner Problem Java Basics - Anfänger-Themen 4
R Problem mit Taschenrechner Java Basics - Anfänger-Themen 2
B Problem mit Taschenrechner auf der Konsole Java Basics - Anfänger-Themen 10
C Taschenrechner -> Anzeige/Variablen Problem Java Basics - Anfänger-Themen 9
R Problem mit Taschenrechner Java Basics - Anfänger-Themen 14
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
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
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
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
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
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
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

Ähnliche Java Themen

Neue Themen


Oben