Может ли кто-нибудь указать мне в правильном направлении?Сравните строку, реконструированную из массива байтов, с другой строкой
Я получаю пакет дейтаграммы, который я храню в строке. Когда я сравню эту строку с другой, это приведет к ложному.
Вот код:
private static String KEY = "Iamastring";
String sentence = new String(receivePacket.getData(), "UTF-8"); //Reconstruct the string
sentence.trim();
System.out.println("RECEIVED: " + sentence + " test " + KEY + " test ");
System.out.println("Length: " + sentence.length() + " " + KEY.equals(sentence));
И это мой выход:
RECEIVED: Iamastring
Length: 1024 false
Ожидаемое сравнение KEY.equals (предложение) верно.
Это не может быть ваш выход. Где «тест»? –
Строки неизменяемы, поэтому 'sentence.trim();' не может влиять на исходную строку, хранящуюся в ссылке 'предложение', но создаст и вернет новую обрезанную строку, которую вы должны хранить где-нибудь (вы можете сохранить ее снова в' предложение' Справка). – Pshemo
Покажите нам необработанные байты из getPacket.getData() с помощью java.util.Arrays.toString (byte []). Возможно, они не кодируются в UTF-8. –