diff --git a/hutool-core/src/main/java/cn/hutool/core/text/StrUtil.java b/hutool-core/src/main/java/cn/hutool/core/text/StrUtil.java index b3e63f3da..2b520bceb 100644 --- a/hutool-core/src/main/java/cn/hutool/core/text/StrUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/text/StrUtil.java @@ -7,6 +7,9 @@ import java.io.StringReader; import java.io.StringWriter; import java.nio.ByteBuffer; import java.nio.charset.Charset; +import java.util.Collection; +import java.util.Iterator; +import java.util.List; import java.util.Map; /** @@ -415,4 +418,22 @@ public class StrUtil extends CharSequenceUtil implements StrPool { public static String format(final CharSequence template, final Map map, final boolean ignoreNull) { return StrFormatter.format(template, map, ignoreNull); } + + /** + * @see CharSequenceUtil#isAllBlank(CharSequence...) + * @param strs 字符串列表 + * @return 批量判断字符串是否全部为空白 + * @since 6.0.1 + */ + public static boolean isAllBlank(final Collection strs) { + if (ArrayUtil.isEmpty(strs)) { + return true; + } + for (final CharSequence str : strs) { + if (isNotBlank(str)) { + return false; + } + } + return true; + } } diff --git a/hutool-core/src/test/java/cn/hutool/core/text/StrUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/text/StrUtilTest.java new file mode 100644 index 000000000..20b23d523 --- /dev/null +++ b/hutool-core/src/test/java/cn/hutool/core/text/StrUtilTest.java @@ -0,0 +1,45 @@ +package cn.hutool.core.text; + +import org.junit.Assert; +import org.junit.Test; + +import java.util.LinkedList; +import java.util.List; + +public class StrUtilTest { + @Test + public void testIssAllBlank() { + List queue = new LinkedList<>(); + queue.add("apple"); + queue.add("banana"); + queue.add("cherry"); + queue.add("orange"); + queue.add("strawberry"); + queue.add("watermelon"); + Assert.assertFalse(StrUtil.isAllBlank(queue)); + + Assert.assertTrue(CharSequenceUtil.isAllBlank("")); + Assert.assertTrue(CharSequenceUtil.isAllBlank(" ")); + Assert.assertTrue(CharSequenceUtil.isAllBlank("\t")); + Assert.assertTrue(CharSequenceUtil.isAllBlank("\n")); + Assert.assertTrue(CharSequenceUtil.isAllBlank("\r")); + Assert.assertTrue(CharSequenceUtil.isAllBlank("\f")); + Assert.assertFalse(CharSequenceUtil.isAllBlank("\b")); + Assert.assertTrue(CharSequenceUtil.isAllBlank("\u00A0")); + Assert.assertTrue(CharSequenceUtil.isAllBlank("\uFEFF")); + Assert.assertTrue(CharSequenceUtil.isAllBlank("\u2000")); + Assert.assertTrue(CharSequenceUtil.isAllBlank("\u2001")); + Assert.assertTrue(CharSequenceUtil.isAllBlank("\u2002")); + Assert.assertTrue(CharSequenceUtil.isAllBlank("\u2003")); + Assert.assertTrue(CharSequenceUtil.isAllBlank("\u2004")); + Assert.assertTrue(CharSequenceUtil.isAllBlank("\u2005")); + Assert.assertTrue(CharSequenceUtil.isAllBlank("\u2006")); + Assert.assertTrue(CharSequenceUtil.isAllBlank("\u2007")); + Assert.assertTrue(CharSequenceUtil.isAllBlank("\u2008")); + Assert.assertTrue(CharSequenceUtil.isAllBlank("\u2009")); + Assert.assertTrue(CharSequenceUtil.isAllBlank("\u200A")); + Assert.assertTrue(CharSequenceUtil.isAllBlank("\u3000")); + Assert.assertTrue(CharSequenceUtil.isAllBlank("\uFEFF")); + + } +}