[gelöst]Java Scanner und If bedingung

Da ich hier gute Erfahrungen gemacht hab nun mal ne Frage Abseits des Webseitenbastelns.
(Hoffe ich bin hier richtig^^)

[code] public static void main (String[] args)
{
System.out.println(“Wähle: Quadrat oder Kreis”);
Scanner sss = new Scanner (System.in);
String entscheidung = sss.nextLine();

if (entscheidung == "Quadrat")
{
  
} // end of if
else
{
  System.out.print("Gebe einen Radius ein\n");
  Scanner s = new Scanner (System.in);
  String t = s.nextLine();
  double radius = Double.parseDouble(t);
  System.out.print("Gebe eine Höhe ein\n");
  Scanner ss = new Scanner (System.in);
  String tt = ss.nextLine();
  double hoehe = Double.parseDouble(tt);
  System.out.println("Kreisfläche: "+berechneKreisFlaeche(radius));
  System.out.println("Volumen einer Kugel: "+berechneKugelVolumen(radius));
  System.out.println("Volumen eines Zylinders: "+berechneZylinderVolumen(radius,hoehe));
}

}[/code]
Warum funktioniert das if nicht?
Also warum komme ich immer zu else, selbst wenn ich Quadrat eingebe?

Hiho,

ich hab den Code kurz überflogen und bin über 2 Dinge gestolpert (ich bin jetz auch nicht wirklich der Pro in Java)

das “==” wird meines Wissens bei Strings in Java nicht unterstützt. Probiers mal mit .equals(“Quadrat”). Ich glaube das liegt daran, dass das Objekt “Quadrat” nicht das Stringobjekt entscheidung referenziert.

EDIT:

Also: if(entscheidung.equals(“Quadrat”)){
… doit!
}

und nextLine() ist eine Unterklasse von inputstream/Reader?
Wenn nein, probiers mal mit

entscheidung = sss.readline(system.in);

Eventuell musst du mit Stream-chaining arbeiten (also mehrere Streams ineinander verschachteln)

Sag mal bescheid wenn dus ausprobiert hast!

:wink:

[quote=„rumbel“]
Also: if(entscheidung.equals(„Quadrat“)){
… doit!
}[/quote]
Vielen Dank, das wars :hail:

Gott sei Dank muss ich mich nicht mit deinem Stream-chaining-Gedöns rumärgern :ps: