Frage von hdbbi17, 77

Hallo ich möchte mit blue j zwei Strings mit if abfragen die man als parameter übergibt.

Nun grieg ich diese Fehlermeldung(im Bild zu sehen) und weiß nicht was ich verändern soll? vielen dank für eure hilfe im voraus

Antwort
von androhecker, 52

Entweder == benutzen falls du testen willst ib es exakt der gleiche String ist oder .equals() um den Inhalt zu vergleichen. Und Variablen werden klein geschrieben.

Antwort
von GustavAT, 12

Du benutzt den Zuweisungsoperator = anstatt dem Vergleichsoperator ==.

In Java werden Strings allerdings mit der equals Methode verglichen (zumindest der Inhalt und nicht die Referenz auf das Objekt selbst), da der Vergleichsoperator nicht, wie z.B. in C#, überladen ist.

Antwort
von safur, 48

"=" ist ein Zuweisungsoperator, du meinst wohl eher ==
Du vergleichst hier zwei Strings mit einem binären AND.
if((string1=="abc")  &&  (string2=="def")){}

Kommentar von androhecker ,

Die equals Methode wäre hier richtig, IDEs wie IntelliJ markieren es schon wenn man String mit == vergleicht.

Kommentar von safur ,

Klar, du könntest auch string.equals() verwenden.

Kommentar von androhecker ,

Sollte aber nicht verwendet werden, ist genauso nicht empfohlen wie Variablennamen die mit einem Großbuchstaben beginnen.

Kommentar von safur ,

Hier ist der Unterschied den du meinst nochmal gut erklärt:
http://www.java-blog-buch.de/0302-strings-vergleichen/

Kommentar von androhecker ,

Habe auch nichts anderes gesagt, deswegen sollte man die von dir genannte Methode nicht verwenden.

Antwort
von Copyyy, 53

Du willst hier nicht "=" benutzen. Den Rest kannst du dir innerhalb von wenigen Sekunden ergooglen

Kommentar von Suboptimierer ,

==

Kommentar von Copyyy ,

Will er wahrscheinlich auch nicht benutzen...

Kommentar von Suboptimierer ,

Nicht?

Kommentar von Copyyy ,

"In Java, == always just compares two references (for non-primitives, that is) - i.e. it tests whether the two operands refer to the same object.

However, the equals method can be overridden - so two distinct objects can still be equal." https://stackoverflow.com/questions/1643067/whats-the-difference-between-equals-...

Kommentar von Copyyy ,

Nicht, dass hier etwas missverstanden wird: Ich sagte nicht, dass es in diesem Beispiel nicht funktioniert. Ich sagte nur, dass er wahrscheinlich den "Inhalt" vergleichen will anstatt der "memory reference" (gibts das Wort im Deutschen? oO)

Kommentar von hdbbi17 ,

Ah ja stimmt ich brauch ja "==" da bin ich wohl auf dem schlauch gestanden :D Trotzdem vielen dank ohne den Tipp wäre ich erstmal nicht drauf gekommen.

Kommentar von androhecker ,

Objekt Referenz würde man sagen.

Keine passende Antwort gefunden?

Fragen Sie die Community