Перейти к основному содержимому

Сравните строки, игнорируя пробелы в Java

· 2 мин. чтения

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 .