Ich habe ein sehr seltsames Problem bei der Arbeit an einem UDP-basierten Java-Projekt bekommen. Um es zusammenzufassen: Wenn ich eine Anfrage über ein DataPacket erhalte, wandle ich sie in eine neue Zeichenfolge um. Wenn ich dann den String-Wert überprüfe, gibt er weiterhin false zurück. Der Code ist unten.Java String Vergleiche
DatagramPacket request = new DatagramPacket(buffer, buffer.length);
aSocket.receive(request);
String message = new String(request.getData());
System.out.println("Received: " + new String(request.getData()));
System.out.println(message); //Prints out "11" without quotes when I send it
String a = "11";
System.out.println("Received: " + message);
if(message.equals("11")){
System.out.println("Got 11.");
}
// Also tried .equals(a), but either ways it seems to be returning false.
Nichts Seltsames - Ihr String ist nicht "11". Hast du die einzelnen Zeichen im empfangenen String überprüft? Die nicht druckenden Zeichen? Der weiße Raum? Hast du die Saite zuerst getrimmt, bevor du sie verglichen hast? –
Versuchen Sie einen Debugger auszuführen und sehen Sie, welche Nachricht gleich ist. – PrestonM