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
No comments:
Post a Comment