Tuesday, 7 December 2021

Java11: String strip(): Trim all the whitespaces

 

What is whitespace in Java?

A character is a Java whitespace character if and only if it satisfies one of the following criteria:

 

a.   It is a Unicode space character (SPACE_SEPARATOR, LINE_SEPARATOR, or PARAGRAPH_SEPARATOR) but is not also a non-breaking space ('\u00A0', '\u2007', '\u202F').

b.   It is '\t', U+0009 HORIZONTAL TABULATION.

c.    It is '\n', U+000A LINE FEED.

d.   It is '\u000B', U+000B VERTICAL TABULATION.

e.   It is '\f', U+000C FORM FEED.

f.     It is '\r', U+000D CARRIAGE RETURN.

g.   It is '\u001C', U+001C FILE SEPARATOR.

h.   It is '\u001D', U+001D GROUP SEPARATOR.

i.     It is '\u001E', U+001E RECORD SEPARATOR.

It is '\u001F', U+001F UNIT SEPARATOR

 

How strip is different from trim method?

strip() is "Unicode-aware" evolution of trim().  String::trim has existed from early days of Java when Unicode had not fully evolved to the standard we widely use today.

 

The definition of space used by String::trim is any code point less than or equal to the space code point (\u0020), commonly referred to as ASCII or ISO control characters.

 

StringContainWhiteSpacesDemo1.java 

public class StringContainWhiteSpacesDemo1 {

	private static boolean containOnlyWhiteSpaces(String str) {
		if (str == null) {
			return false;
		}

		return str.strip().isEmpty();
	}

	public static void main(String args[]) {
		String str1 = "Hello";
		String str2 = "\n\t\f\r   \n\t";

		System.out.println("is str1 contains only whitespaces : " + containOnlyWhiteSpaces(str1));
		System.out.println("is str2 contains only whitespaces : " + containOnlyWhiteSpaces(str2));
	}

}

 

Output

is str1 contains only whitespaces : false
is str2 contains only whitespaces : true

 


References

https://bugs.openjdk.java.net/browse/JDK-8200378

 


 

 

 

 

Previous                                                    Next                                                    Home

No comments:

Post a Comment