1. Обзор
В этом коротком руководстве мы увидим, как сравнивать строки, игнорируя пробелы в Java .
2. Используйте метод replaceAll()
Предположим, у нас есть две строки — одна содержит пробелы, а другая содержит только символы, не являющиеся пробелами:
String normalString = "ABCDEF";
String stringWithSpaces = " AB CD EF ";
Мы можем просто сравнить их, игнорируя пробелы, используя встроенный метод replaceAll() класса
String
:
assertEquals(normalString.replaceAll("\\s+",""), stringWithSpaces.replaceAll("\\s+",""));
Использование метода replaceAll()
выше удалит все пробелы в нашей строке, включая невидимые символы , такие как табуляция, \n и т. д.
В дополнение к \s+ мы можем использовать \s .
3. Используйте Apache Commons Lang
Затем мы можем использовать класс StringUtils
из библиотеки Apache Commons Lang для достижения той же цели.
Этот класс имеет метод deleteWhitespace()
, который используется для удаления всех пробелов в строке
:
assertEquals(StringUtils.deleteWhitespace(normalString), StringUtils.deleteWhitespace(stringWithSpaces));
4. Используйте класс StringUtils
Spring Framework
Наконец, если наш проект уже использует Spring Framework, мы можем использовать класс StringUtils из пакета
org.springframework.util
.
В этот раз следует использовать метод trimAllWhitespace()
:
assertEquals(StringUtils.trimAllWhitespace(normalString), StringUtils.trimAllWhitespace(stringWithSpaces));
Мы должны иметь в виду, что если мы хотим сравнить строки, в которых пробелы имеют значение, например, имена людей, мы не должны использовать методы, описанные в этой статье. Например, следующие две строки будут считаться равными: «JACKIE CHAN» и «JAC KIE CHAN», и это может быть не то, что нам действительно нужно.
5. Вывод
В этой статье мы рассмотрели различные способы сравнения строк с игнорированием пробелов в Java .
Как всегда, пример кода из этой статьи можно найти на GitHub .