У меня есть две "равные" строки.Когда я печатаю обе строки, они выглядят одинаково на экране.Но когда я сравниваю строки, в результате получается «ложь» и с использованием .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=""3""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=""3""y:a1="1"y:a2="2">cdf</b></doc> String 1 length: 174 String 2 length: 171
Я скопировал обе строки из консоли Netbeans, так как вы можете видеть, что они равны, но имеют разную длину.
Спасибо.
Когда вы читаете это в своей Java-программе, возможно, строка содержит символы новой строки ("\n\r" в Windows), которые могут изменить длину и равенство в обеих строках.
"\n\r"
Попробуйте напечатать их как символы:
System.out.println( Arrays.toString( yourString.toCharArray() );
Это должно позволить вам увидеть, где находятся непечатаемые символы (или что-либо другое), так как вывод для "abc" будет "[a, б, в] ".
Вызовите getBytes() на обе строки и распечатайте результаты.Держу пари, у вас есть разница в кодировке.
getBytes()
Вы вырезали и вставляли строки из внешнего источника, такого как PDF?Несколько лет назад у меня была похожая проблема, и я обнаружил, что строки, скопированные из PDF-файлов, иногда содержат некоторые невидимые символы (я использовал Acrobat Reader).
Я удалил все пробелы и все, чтобы установить строки в одну строку.
Пробел важен и может быть решающим фактором в вашей проблеме равных здесь. Чтобы проверить, если это так, уберите пробел из обеих строк, затем выполните проверку на равенство.