Trimming whitespace from strings

🔹 1️⃣ String.trim()

The classic method for removing whitespace from both ends of a string.

Syntax:

String trimmed = str.trim();

Behavior:

  • Removes leading and trailing whitespace.
  • Whitespace includes:
    spaces (' '), tabs ('\t'), newlines ('\n'), carriage returns ('\r').

✅ Example:

String s = "   Hello World!  ";
System.out.println(s.trim());

Output:

Hello World!

🔹 2️⃣ Limitation of trim()

trim() only removes characters ≤ ‘\u0020’ (space).
It does not handle all Unicode whitespace characters (like non-breaking spaces).

Example:

String s = "\u00A0Hello\u00A0"; // non-breaking spaces
System.out.println(s.trim().equals("Hello")); // false

🔹 3️⃣ String.strip() — Modern Alternative (Java 11+)

Introduced in Java 11, strip() is Unicode-aware and replaces trim() for most modern uses.

Syntax:

String result = str.strip();

Behavior:

  • Removes all Unicode whitespace (not just ASCII).
  • Uses Character.isWhitespace() to decide what counts as whitespace.

✅ Example:

String s = "\u2003 Hello World! \u2003"; // contains em space
System.out.println(s.strip());

Output:

Hello World!

🔹 4️⃣ Related Methods (Java 11+)

MethodDescriptionExampleResult
strip()Removes both leading and trailing Unicode whitespace" hi ".strip()"hi"
stripLeading()Removes only leading whitespace" hi ".stripLeading()"hi "
stripTrailing()Removes only trailing whitespace" hi ".stripTrailing()" hi"

🔹 5️⃣ Comparison Table

Featuretrim()strip()
IntroducedJava 1.0Java 11
RemovesASCII spaces (≤ \u0020)All Unicode whitespace
Unicode-aware❌ No✅ Yes
Use for modern code⚠️ Not recommended✅ Preferred

🔹 6️⃣ Example Comparison

String s = "\u2002Java\u2002"; // contains en-space (U+2002)

System.out.println("[" + s.trim() + "]");  // [ Java ]
System.out.println("[" + s.strip() + "]"); // [Java]

strip() works correctly with all Unicode whitespaces.


🔹 7️⃣ Summary

MethodDescriptionJava Version
trim()Removes ASCII whitespace1.0
strip()Unicode-aware trimming11
stripLeading()Remove only start whitespace11
stripTrailing()Remove only end whitespace11

💡 Best practice:

Always use strip() in modern Java (11+) unless you specifically need the old trim() behavior.

Leave a Reply