String.strip() kontra trim()
Używaj świadomego Unicode przycinania za pomocą strip(), stripLeading(), stripTrailing().
Porównanie kodu
✕ 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();
Widzisz problem z tym kodem? Daj nam znać.
Dlaczego nowoczesne podejście wygrywa
Poprawny Unicode
Obsługuje wszystkie znaki białe ze wszystkich skryptów.
Kierunkowy
stripLeading() i stripTrailing() do jednostronnego przycinania.
Mniej błędów
Brak niespodziewanego białego znaku pozostawionego w tekstach międzynarodowych.
Stare podejście
trim()
Nowoczesne podejście
strip()
Od JDK
11
Poziom trudności
Początkujący
Wsparcie JDK
String.strip() kontra trim()
Dostępne
Szeroko dostępne od JDK 11 (wrzesień 2018)
Jak to działa
trim() usuwa tylko znaki ≤ U+0020 (znaki sterujące ASCII i spację). strip() używa Character.isWhitespace(), który obsługuje spacje Unicode jak niełamliwa spacja, spacja ideograficzna itp.
Powiązana dokumentacja
Dowód