# HG changeset patch # User jlaskey # Date 1526303689 10800 # Mon May 14 10:14:49 2018 -0300 # Node ID f9c5ceacb880c0e6ce12b9c6c9041627de61a238 # Parent 92560438d306e2a3084f1dce917d0f9af5796aa9 8200436: String::isBlank Reviewed-by: sundar diff --git a/src/java.base/share/classes/java/lang/String.java b/src/java.base/share/classes/java/lang/String.java --- a/src/java.base/share/classes/java/lang/String.java +++ b/src/java.base/share/classes/java/lang/String.java @@ -2729,6 +2729,31 @@ } /** + * Returns {@code true} if the string is empty or contains only + * {@link Character#isWhitespace(int) white space} codepoints, + * otherwise {@code false}. + * + * @return {@code true} if the string is empty or contains only + * {@link Character#isWhitespace(int) white space} codepoints, + * otherwise {@code false} + * + * @see Character#isWhitespace(int) + * + * @since 11 + */ + public boolean isBlank() { + return indexOfNonWhitespace() == length(); + } + + private int indexOfNonWhitespace() { + if (isLatin1()) { + return StringLatin1.indexOfNonWhitespace(value); + } else { + return StringUTF16.indexOfNonWhitespace(value) >> 1; + } + } + + /** * This object (which is already a string!) is itself returned. * * @return the string itself.