Wie kann ich in meinen Script die Zeichen nebeneinander anstatt untereinander eingeben(In der Console) --> (Taschenrechner)?

4 Antworten

Wenn ich beispielsweise "5+5" rechnen will, warum kann ich dann nur das so eingeben (sonst kommt eine Fehlermeldung)

Das liegt daran, dass du drei Abfragen über den Scanner machst. Willst du alles in eine Abfrage kombinieren, so musst du die Zeile als String einlesen und an dem Operator aufteilen:

public static void main(String[] args) {

  float ergebnis = 0;

  Scanner eingabe = new Scanner(System.in);
  eingabe.useLocale(Locale.GERMANY);

  String[] zeile = eingabe.nextLine().split("((?<=(\\+|-|\\*|/))|(?=(\\+|-|\\*|/)))");
  float zahl1 = Integer.parseInt(zeile[0]);
  char operator = zeile[1].charAt(0);
  float zahl2 = Integer.parseInt(zeile[2]);

// .....

PS: Der Tag "taschenrechner-programmieren" ist nicht sinnvoll, da ihn kein Antwortgeber verwendet.

PPS: Die Eingabe erfolgt übrigens ohne Leerzeichen.

Der Java Scanner funktioniert nur mit Delimiter, also einem Trennzeichen. Standardmäßig ist das eine Leerzeichen, d.h. dein Programm funktioniert mit der Eingabe "5 + 5".

Wenn du das ohne Trennzeichen machen willst, musst du den String selbst zerlegen.

Wenn ich beispielsweise "5+5" rechnen will, warum kann ich dann nur das so eingeben (sonst kommt eine Fehlermeldung):

Setze Leerzeichen zwischen die Eingabe. Dies ist ein Trennzeichen für den Scanner.