Bitte was ?? :bahnhof:wenn ich mit Strings im switch arbeiten möchte, muss ich dann eigentlich immer den direkten Wert (z.B. "abc"), bzw. eine finale varialbe benutzen oder gibt es auch ein weg normale String Objekte zu benutzen?
private final String def = "abc";
String abc = "abc";
switch(abc){
case "abc":return true;
case def: return true;
}
String def = "abc";
String abc = "abc";
switch(abc){
case def: return true;
}
das macht dann unter Strich nix anderes !!!Du kannst in einem Switch-Statement keine Variablen verwenden. Wenn du das wirklich möchtest, dann musst du eine if-Anweisung nehmen (ein switch ist ja eigentlich auch nichts anderes).
switch( myString )
{
case "Aaa":
if( myString.equals("Aaa") )
das macht dann unter Strich nix anderes !!!
ist doch wohl grundlegend das Gleiche wieJava:switch( myString ) { case "Aaa":
oder ???:LJava:if( myString.equals("Aaa") )
Gruß Klaus
um jetzt mal richtig 'klug zu s******en':Eine If-Abfrage ist auch im Bytecode einfach nur eine If-Abfrage, wenn man nun aber sehr viele solcher Abfragen hintereindander hat, wird unter Umständen auch jede dieser abfragen durchgeführt.
if x.equals("a") ...
else if x.equals("b") ...
....
else ifx.equals("z")...
Ok ok - Spezialfälle gibt es immer!
Ist dann IMHO in Deinem Beispiel auch die Frage, ob das Ganze noch sinnvoll ist ...
Fakt ist, das beide Varianten i. d. R. funktionieren - so man sie denn richtig anwendet- und für den Normalfall auch relativ gleichwertig sind!
Gruß
Klaus
Java:if x.equals("a") ... else if x.equals("b") ... .... else ifx.equals("z")...
Das halte ich für ein Gerücht !!Wollte nur mal so einstreuen, dass man seit Java 7/8 (?) Strings inhaltlich auch mit == vergleichen kann.
Wollte nur mal so einstreuen, dass man seit Java 7/8 (?) Strings inhaltlich auch mit == vergleichen kann.
LG!
Scanner scanner = new Scanner(System.in);
if(scanner.nextLine() == "abc") {
System.out.println("gleich");
}else{
System.out.println("ungleich");
}
[...]Wo hast Du das denn her ?[...]
Er hat das mit dem "String constant pool" nicht verstanden. Ein Blick in die JLS könnte ihm helfen
Chapter*3.*Lexical Structure
Dass man mittlerweile mit == inhaltich vergleiche kann, hat mir heute ein Lehrer gesagt :O
Habs gerade getestet, geht wirklich nicht.