diff --git a/hutool-core/src/main/java/cn/hutool/core/text/CharSequenceUtil.java b/hutool-core/src/main/java/cn/hutool/core/text/CharSequenceUtil.java
index 4f7dc2bf1..af17ce0ed 100755
--- a/hutool-core/src/main/java/cn/hutool/core/text/CharSequenceUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/text/CharSequenceUtil.java
@@ -978,7 +978,11 @@ public class CharSequenceUtil {
}
/**
- * 检查指定字符串中是否只包含给定的字符
+ * 检查指定字符串中是否只包含给定的字符
+ * 这里的containsOnly并不是必须全部给定的testChars都需要有,而是一个子集。testChars是个限定集合,检查字符串中的字符是否在这个限定集合中。
+ *
{@code + * StrUtil.containsOnly("asdas", 'a', 'd', 's','l'); --> true + * }* * @param str 字符串 * @param testChars 检查的字符 diff --git a/hutool-core/src/test/java/cn/hutool/core/text/CharSequenceUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/text/CharSequenceUtilTest.java index 5cfadd588..3914d806c 100755 --- a/hutool-core/src/test/java/cn/hutool/core/text/CharSequenceUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/text/CharSequenceUtilTest.java @@ -225,4 +225,22 @@ public class CharSequenceUtilTest { Assert.assertEquals(CharSequenceUtil.repeat(CharSequenceUtil.SPACE, 10), CharSequenceUtil.commonSuffix(str1, str2)); } + @Test + public void testContainsOnly() { + // 测试空字符串 + Assert.assertTrue(CharSequenceUtil.containsOnly("", 'a', 'b')); + + // 测试字符串只包含testChars中的字符 + Assert.assertTrue(CharSequenceUtil.containsOnly("asdf", 'a', 's', 'd', 'f')); + + // 测试字符串包含testChars中的字符和其它字符 + Assert.assertFalse(CharSequenceUtil.containsOnly("asdf123", 'a', 's', 'd', 'f')); + + // 测试字符串不包含testChars中的任何字符 + Assert.assertFalse(CharSequenceUtil.containsOnly("hello", 'a', 'b')); + + // 测试字符串为null + Assert.assertTrue(CharSequenceUtil.containsOnly(null, 'a', 'b')); + } + }