Ce face String.strip
strip() (Java 11) returnează șirul fără spațiile albe de la început și de la sfârșit; spațiile din interior rămân. stripLeading() le elimină doar de la început, stripTrailing() doar de la sfârșit.
trim() există din Java 1.0 și face aproape același lucru, dar elimină doar caracterele cu cod ≤ 32 (spațiu, tab, rând nou etc.). strip() recunoaște toate spațiile Unicode, de exemplu spațiul fără întrerupere copiat dintr-o pagină web sau spațiul em (\u2003). În cod nou, preferă strip().
Pentru spațiile din interior (mai multe spații la rând), folosește replaceAll("\\s+", " ").
Ce returnează
Un șir nou fără spațiile de la capete (sau același șir, dacă nu avea).
Exemple
Exemplul 1: Curățarea datelor introduse
Parantezele drepte arată unde încep și unde se termină șirurile.
public class Main {
public static void main(String[] args) {
String nume = " Ana Popescu \t\n";
System.out.println("[" + nume.strip() + "]");
System.out.println("[" + nume.stripLeading() + "]");
System.out.println("[" + nume.stripTrailing() + "]");
System.out.println("[" + nume.trim() + "]");
}
}
Rezultat
[Ana Popescu]
[Ana Popescu
]
[ Ana Popescu]
[Ana Popescu]
Exemplul 2: trim() nu vede toate spațiile Unicode
public class Main {
public static void main(String[] args) {
String text = "\u2003Iași\u2003";
System.out.println("trim: [" + text.trim() + "] lungime " + text.trim().length());
System.out.println("strip: [" + text.strip() + "] lungime " + text.strip().length());
}
}
Rezultat
trim: [ Iași ] lungime 6
strip: [Iași] lungime 4
Exemplul 3: Spații multiple în interior
public class Main {
public static void main(String[] args) {
String adresa = " Str. Unirii nr. 10 ";
String curat = adresa.strip().replaceAll("\\s+", " ");
System.out.println("[" + curat + "]");
}
}
Rezultat
[Str. Unirii nr. 10]
Greșeli frecvente
- Crezi că
strip()elimină și spațiile din mijloc. Elimină doar de la capete. - Folosești
trim()pe text copiat din browser sau Word și spațiile „nu dispar”. Sunt spații Unicode; foloseștestrip(). - Nu salvezi rezultatul:
nume.strip();fără atribuire nu schimbă nimic.
Comenzi înrudite
String.length: length() dă numărul de caractere; isEmpty() verifică dacă șirul e gol, isBlank() dacă are doar spații.String.replaceAll: Înlocuiește toate (replaceAll) sau doar prima (replaceFirst) potrivire a unei expresii regulate.String.indent: indent(n) adaugă sau scoate n spații la începutul fiecărui rând; stripIndent() elimină indentarea comună.Character.isWhitespace: Verifică dacă un caracter este spațiu alb: spațiu, tab, rând nou sau alt separator Unicode.