Проблема с равными строками в Java - PullRequest
0 голосов
/ 16 июня 2011

У меня есть две "равные" строки.Когда я печатаю обе строки, они выглядят одинаково на экране.Но когда я сравниваю строки, в результате получается «ложь» и с использованием .length в обеих строках получается 174 для первой строки и 171 для второй.Я удалил все пробелы и все, чтобы установить строки в одну строку.

String 1:
<docxmlns="http://example.com/default"xmlns:x="http://example.com/x"><aa1="1"a2="2">123</a><bxmlns:y="http://example.com/y"a3="&quot;3&quot;"y:a1="1"y:a2="2">cdf</b></doc>

String 2:
<docxmlns="http://example.com/default"xmlns:x="http://example.com/x"><aa1="1"a2="2">123</a><bxmlns:y="http://example.com/y"a3="&quot;3&quot;"y:a1="1"y:a2="2">cdf</b></doc>

String 1 length: 174
String 2 length: 171

Я скопировал обе строки из консоли Netbeans, так как вы можете видеть, что они равны, но имеют разную длину.

Спасибо.

Ответы [ 5 ]

3 голосов
/ 16 июня 2011

Когда вы читаете это в своей Java-программе, возможно, строка содержит символы новой строки ("\n\r" в Windows), которые могут изменить длину и равенство в обеих строках.

2 голосов
/ 16 июня 2011

Попробуйте напечатать их как символы:

System.out.println( Arrays.toString( yourString.toCharArray() );

Это должно позволить вам увидеть, где находятся непечатаемые символы (или что-либо другое), так как вывод для "abc" будет "[a, б, в] ".

2 голосов
/ 16 июня 2011

Вызовите getBytes() на обе строки и распечатайте результаты.Держу пари, у вас есть разница в кодировке.

0 голосов
/ 16 июня 2011

Вы вырезали и вставляли строки из внешнего источника, такого как PDF?Несколько лет назад у меня была похожая проблема, и я обнаружил, что строки, скопированные из PDF-файлов, иногда содержат некоторые невидимые символы (я использовал Acrobat Reader).

0 голосов
/ 16 июня 2011

Я удалил все пробелы и все, чтобы установить строки в одну строку.

Пробел важен и может быть решающим фактором в вашей проблеме равных здесь. Чтобы проверить, если это так, уберите пробел из обеих строк, затем выполните проверку на равенство.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...