String.strip() vs trim()
Unicode-совместимое удаление пробелов с помощью strip(), stripLeading(), stripTrailing().
Сравнение кода
✕ Java 8
// trim() only removes ASCII whitespace // (chars <= U+0020) String clean = str.trim();
✓ Java 11+
// strip() removes all Unicode whitespace String clean = str.strip(); String left = str.stripLeading(); String right = str.stripTrailing();
Заметили проблему в этом коде? Сообщите нам.
Почему современный подход лучше
Корректная работа с Unicode
Обрабатывает все пробельные символы из всех систем письма.
Направленность
stripLeading() и stripTrailing() для одностороннего удаления.
Меньше ошибок
Нет неожиданных пробелов в интернациональном тексте.
Старый подход
trim()
Современный подход
strip()
Начиная с JDK
11
Сложность
Начинающий
Поддержка JDK
String.strip() vs trim()
Доступно
Широко доступно с JDK 11 (сентябрь 2018)
Как это работает
trim() удаляет только символы ≤ U+0020 (управляющие символы ASCII и пробел). strip() использует Character.isWhitespace(), который обрабатывает Unicode-пробелы, такие как неразрывный пробел, идеографический пробел и др.
Связанная документация
Доказательство