Frage von MisterNeugier, 77

ey leute sehe nur ich den Fehler nicht?

Hey ho leute, habe eine frage und zwar sehe ich den Fehler in der If abfrage als einziger nicht? In beiden ausgaben steht das gleiche drinne aber er springt trotzdem ins else:

if (args[0] == con.returnString(player, "Spieler." + player.getName(), main))
{
    MultiEvents.isNotLogged.remove(player);
    player.sendMessage(main.Name + "Du hast dich erfolgreich angemeldet");
    return true;
}
else
{
    player.kickPlayer(main.Name + "§cDas war das falsche Passwort");
}
                    
Antwort
von mono68, 58

Um in Java zwei Strings zu vergleichen, musst du die Methode equals verwenden.

String playerName = con.returnString(player, "Spieler." + player.getName(), main);

if (playerName.equals(args[0]))

...



Kommentar von MisterNeugier ,

Hehe okey danke werde es ausprobieren. Das passiert wenn man mehrere Sprachen beherrscht und alle leicht anderes sind :)

Kommentar von mono68 ,

Ja, das kenne ich. Viel Erfolg! :-)

Antwort
von Schachpapa, 42

Mit a==b prüft man Identität, mit a.equals(b) prüft man Gleichheit. 

Der Unterschied ist so wie bei "das selbe" und "das gleiche". Wir beide können zwar das gleiche Auto haben, z.B. einen roten Golf V, aber wenn wir dasselbe Auto hätten, wäre das für zwei gutefrage Teilnehmer, die sich nicht mal kennen, ziemlich ungewöhnlich.

Der String, den du über die Tastatur eingibst, ist nicht derselbe, wir der, mit dem du vergleichst.

Daher besser 

if (arg[0].equals(spielername)) ...

Und an die Variable spielername weist du vorher diesen komplizierten Ausdruck zu, den du sonst in zwei Wochen selbst nicht mehr verstehst.

Kommentar von MisterNeugier ,

Haha und wie ich den verstehe :) 

Kommentar von Schachpapa ,

Und irgendwann lernst du dann auch Code zu schreiben, der so gut lesbar ist, dass er sich selbst dokumentiert.

Das ist dann der Unterschied zwischen "läuft doch" und "schön". Wartbarkeit und Wiederverwendbarkeit sparen eine Menge Zeit und Nerven ;-)

Antwort
von Michi6988911, 60

Du musst bei **return true'' ein ''.'' dazwischen machen. ''return.true''

Kommentar von LeonardM ,

Och kann zwar kein java aber ich bezweifle sehr stark das da nen punkt hin muss

Kommentar von Kiboman ,

ich kenne keine sprache wo nach dem return ein punkt kommt.

er hat den fehler beschrieben, es handelt sich nicht um einen Sytax Error, zudem ist mehrfach (Code und Tags) erkennbar das es sich um Java handelt.

In welcher Sprache gibt es ein "return.true"?

Kommentar von perhp ,

Würde mir jetzt auch komisch vorkommen, wo nach dem return ein Punkt kommen würde. Bis jetzt ist mir keine Sprache untergekommen, wo das der Fall ist.

Keine passende Antwort gefunden?

Fragen Sie die Community