# Problem bei Vergleichen von Strings übertragen über eine Socketverbindung



## quiqum (31. Mrz 2009)

Hallo Leute!
Ich habe ein kleines Programm geschrieben, dass "Befehle" erhält (über eine TCP Verbindung, Socket) und dann das entsprechende ausführen muss (bzw. sollte).

GetLine liest von einem PipedInputStream die Zeichen bis zu '\n' aus und gibt sie als String zurück.

Folgendes Funktioniert NICHT:

```
String Befehl = GetLine(pin,"",'\n',100).trim();                
                    if(Befehl == "help") {
                        ...
                    }
```

Folgendes Funktioniert:

```
String Befehl = GetLine(pin,"",'\n',100).trim();                
                    if(Befehl.indexOf("help") != -1) {
                        ...
                    }
```
Jedoch bringt mir das nichts, da wenn noch weiteres im Befehl steht, dass auch "help" ist, dann wird der Befehl trotzdem ausgeführt. 

Ich habe dann mal die einzelnen Zeichen der beiden Strings in die einzelnen INT Werte aufgeteilt und verglichen. Doch leider musste ich festellen, dass Beides genau gleich war. Wenn ich dann diese neuen String mit den INT Werte versuchte zu vergleichen, kam auch ein "false" heraus, obwohl sie genau gleich sind. (Es gibt auch keine Abstände am Schluss oder am Ende)

Wie kann ich die Strings vergleichen? bzw. Warum geht das nicht?


----------



## SlaterB (31. Mrz 2009)

Strings nicht mit == vergleichen, nur mit equals() !

> Warum geht das nicht?

zwei unterschiedliche Strings mit gleichen Inhalt (Länge, Char-Array)


----------



## quiqum (31. Mrz 2009)

Habe ich also richtig verstanden:

String Test = "papi";
if(Test.equals("mami")) System.out.println("");
else System.out.println("");

Danke!


----------



## SlaterB (31. Mrz 2009)

ja


----------

