Auch wenn's Offtopic wird: Noch geiler wird's in Java:
Code:
String str="abc";
if (str == "abc") {
echo("String ist abc")
} else {
echo("String ist NICHT abc");
Jeder denkt, im IF würde verglichen ob 'abc' im String drinsteht (was es ja tut) und dann ausgeben 'String ist abc'. Es kommt jedoch immer die Ausgabe 'String ist nicht abc' heraus.
Wenn man sich näher damit befasst ist es auch klar, weil in Java der String ein Objekt ist, und die Variable str im Prinzip ja nur ein Pointer auf die konkrete Instanz ist. Und der Pointer (also str) ist sicher nicht "abc" sondern irgend ein Adresswert. Richtig müsste sein:
Code:
if (str.equals("abc")) {
//hier passt es
}
Und das ist einer der Gründe, warum ich Java so elendig hasse: Der Code tut nicht das wonach er intuitiv aussieht. Das ist bei Delphi zum Glück ganz anders.