diff --git a/hutool-core/src/main/java/cn/hutool/core/util/CharUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/CharUtil.java
index e39bb286e..edabec224 100644
--- a/hutool-core/src/main/java/cn/hutool/core/util/CharUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/util/CharUtil.java
@@ -11,43 +11,43 @@ import cn.hutool.core.text.ASCIIStrCache;
*/
public class CharUtil {
- /** 字符常量:空格符 ' ' */
+ /** 字符常量:空格符 {@code ' '} */
public static final char SPACE = ' ';
- /** 字符常量:制表符 \t */
+ /** 字符常量:制表符 {@code '\t'} */
public static final char TAB = ' ';
- /** 字符常量:点 . */
+ /** 字符常量:点 {@code '.'} */
public static final char DOT = '.';
- /** 字符常量:斜杠 / */
+ /** 字符常量:斜杠 {@code '/'} */
public static final char SLASH = '/';
- /** 字符常量:反斜杠 \ */
+ /** 字符常量:反斜杠 {@code '\\'} */
public static final char BACKSLASH = '\\';
- /** 字符常量:回车符 \r */
+ /** 字符常量:回车符 {@code '\r'} */
public static final char CR = '\r';
- /** 字符常量:换行符 \n */
+ /** 字符常量:换行符 {@code '\n'} */
public static final char LF = '\n';
- /** 字符常量:连接符 - */
+ /** 字符常量:减号(连接符) {@code '-'} */
public static final char DASHED = '-';
- /** 字符常量:下划线 _ */
+ /** 字符常量:下划线 {@code '_'} */
public static final char UNDERLINE = '_';
- /** 字符常量:逗号 , */
+ /** 字符常量:逗号 {@code ','} */
public static final char COMMA = ',';
- /** 字符常量:花括号(左) { */
+ /** 字符常量:花括号(左) '{'
*/
public static final char DELIM_START = '{';
- /** 字符常量:花括号(右) } */
+ /** 字符常量:花括号(右) '}'
*/
public static final char DELIM_END = '}';
- /** 字符常量:中括号(左) [ */
+ /** 字符常量:中括号(左) {@code '['} */
public static final char BRACKET_START = '[';
- /** 字符常量:中括号(右) ] */
+ /** 字符常量:中括号(右) {@code ']'} */
public static final char BRACKET_END = ']';
- /** 字符常量:双引号 : */
+ /** 字符常量:双引号 {@code '"'} */
public static final char DOUBLE_QUOTES = '"';
- /** 字符常量:单引号 ' */
+ /** 字符常量:单引号 {@code '\''} */
public static final char SINGLE_QUOTE = '\'';
- /** 字符常量:与 & */
+ /** 字符常量:与 {@code '&'} */
public static final char AMP = '&';
- /** 字符常量:冒号 : */
+ /** 字符常量:冒号 {@code ':'} */
public static final char COLON = ':';
- /** 字符常量:艾特 @ */
+ /** 字符常量:艾特 '@'
*/
public static final char AT = '@';
/**
diff --git a/hutool-core/src/main/java/cn/hutool/core/util/StrUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/StrUtil.java
index 51bac588c..511db0223 100644
--- a/hutool-core/src/main/java/cn/hutool/core/util/StrUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/util/StrUtil.java
@@ -29,186 +29,252 @@ import java.util.regex.Pattern;
* 字符串工具类
*
* @author xiaoleilu
+ * @since 1.0.0
*/
public class StrUtil {
public static final int INDEX_NOT_FOUND = -1;
/**
- * 字符常量:空格符 ' '
+ * 字符常量:空格符 {@code ' '}
*/
public static final char C_SPACE = CharUtil.SPACE;
+
/**
- * 字符常量:制表符 \t
+ * 字符常量:制表符 {@code '\t'}
*/
public static final char C_TAB = CharUtil.TAB;
+
/**
- * 字符常量:点 .
+ * 字符常量:点 {@code '.'}
*/
public static final char C_DOT = CharUtil.DOT;
+
/**
- * 字符常量:斜杠 /
+ * 字符常量:斜杠 {@code '/'}
*/
public static final char C_SLASH = CharUtil.SLASH;
+
/**
- * 字符常量:反斜杠 \
+ * 字符常量:反斜杠 {@code '\\'}
*/
public static final char C_BACKSLASH = CharUtil.BACKSLASH;
+
/**
- * 字符常量:回车符 \r
+ * 字符常量:回车符 {@code '\r'}
*/
public static final char C_CR = CharUtil.CR;
+
/**
- * 字符常量:换行符 \n
+ * 字符常量:换行符 {@code '\n'}
*/
public static final char C_LF = CharUtil.LF;
+
/**
- * 字符常量:下划线 _
+ * 字符常量:下划线 {@code '_'}
*/
public static final char C_UNDERLINE = CharUtil.UNDERLINE;
+
/**
- * 字符常量:逗号 ,
+ * 字符常量:逗号 {@code ','}
*/
public static final char C_COMMA = CharUtil.COMMA;
+
/**
- * 字符常量:花括号(左) {
+ * 字符常量:花括号(左) '{'
*/
public static final char C_DELIM_START = CharUtil.DELIM_START;
+
/**
- * 字符常量:花括号(右) }
+ * 字符常量:花括号(右) '}'
*/
public static final char C_DELIM_END = CharUtil.DELIM_END;
+
/**
- * 字符常量:中括号(左) [
+ * 字符常量:中括号(左) {@code '['}
*/
public static final char C_BRACKET_START = CharUtil.BRACKET_START;
+
/**
- * 字符常量:中括号(右) ]
+ * 字符常量:中括号(右) {@code ']'}
*/
public static final char C_BRACKET_END = CharUtil.BRACKET_END;
+
/**
- * 字符常量:冒号 :
+ * 字符常量:冒号 {@code ':'}
*/
public static final char C_COLON = CharUtil.COLON;
+
/**
- * 字符常量:艾特 @
+ * 字符常量:艾特 '@'
*/
public static final char C_AT = CharUtil.AT;
+
/**
- * 字符串常量:空格符 ' '
+ * 字符串常量:空格符 {@code " "}
*/
public static final String SPACE = " ";
+
/**
- * 字符串常量:制表符 \t
+ * 字符串常量:制表符 {@code "\t"}
*/
public static final String TAB = " ";
+
/**
- * 字符串常量:点 .
+ * 字符串常量:点 {@code "."}
+ *
+ * @since 1.0.0
*/
public static final String DOT = ".";
+
/**
- * 字符串常量:双点 ..
- * 用途:作为指向上级文件夹的路径 "../path"
+ * 字符串常量:双点 {@code ".."}
+ * 用途:作为指向上级文件夹的路径,如:{@code "../path"}
*/
public static final String DOUBLE_DOT = "..";
+
/**
- * 字符串常量:斜杠 /
+ * 字符串常量:斜杠 {@code "/"}
+ *
+ * @since 1.0.0
*/
public static final String SLASH = "/";
+
/**
- * 字符串常量:反斜杠 \
+ * 字符串常量:反斜杠 {@code "\\"}
*/
public static final String BACKSLASH = "\\";
+
/**
- * 字符串常量:空字符串 ""
+ * 字符串常量:空字符串 {@code ""}
+ *
+ * @since 1.0.0
*/
public static final String EMPTY = "";
+
/**
- * 字符串常量:"null"
- * 注意:"null" != null
+ * 字符串常量:{@code "null"}
+ * 注意:{@code "null" != null}
*/
public static final String NULL = "null";
+
/**
- * 字符串常量:回车符 \r
+ * 字符串常量:回车符 {@code "\r"}
* 解释:该字符常用于表示 Linux 系统和 MacOS 系统下的文本换行
*/
public static final String CR = "\r";
+
/**
- * 字符串常量:换行符 \n
+ * 字符串常量:换行符 {@code "\n"}
+ *
+ * @since 1.0.0
*/
public static final String LF = "\n";
+
/**
- * 字符串常量:Windows 换行 \r\n
+ * 字符串常量:Windows 换行 {@code "\r\n"}
* 解释:该字符串常用于表示 Windows 系统下的文本换行
+ *
+ * @since 1.0.0
*/
public static final String CRLF = "\r\n";
+
/**
- * 字符串常量:下划线 _
+ * 字符串常量:下划线 {@code "_"}
*/
public static final String UNDERLINE = "_";
+
/**
- * 字符串常量:减号(中划线) -
+ * 字符串常量:减号(连接符) {@code "-"}
*/
public static final String DASHED = "-";
+
/**
- * 字符串常量:逗号 ,
+ * 字符串常量:逗号 {@code ","}
*/
public static final String COMMA = ",";
+
/**
- * 字符串常量:花括号(左) {
+ * 字符串常量:花括号(左) "{"
*/
public static final String DELIM_START = "{";
+
/**
- * 字符串常量:花括号(右) }
+ * 字符串常量:花括号(右) "}"
*/
public static final String DELIM_END = "}";
+
/**
- * 字符串常量:中括号(左) [
+ * 字符串常量:中括号(左) {@code "["}
*/
public static final String BRACKET_START = "[";
+
/**
- * 字符串常量:中括号(右) ]
+ * 字符串常量:中括号(右) {@code "]"}
*/
public static final String BRACKET_END = "]";
+
/**
- * 字符串常量:冒号 :
+ * 字符串常量:冒号 {@code ":"}
*/
public static final String COLON = ":";
+
/**
- * 字符串常量:艾特 @
+ * 字符串常量:艾特 "@"
*/
public static final String AT = "@";
+
/**
- * 字符串常量:HTML 空格转义
+ * 字符串常量:HTML 空格转义 {@code " " -> " "}
+ *
+ * @since 1.0.0
*/
public static final String HTML_NBSP = " ";
+
/**
- * 字符串常量:HTML And 符转义 &
+ * 字符串常量:HTML And 符转义 {@code "&" -> "&"}
+ *
+ * @since 1.0.0
*/
public static final String HTML_AMP = "&";
+
/**
- * 字符串常量:HTML 双引号转义 "
+ * 字符串常量:HTML 双引号转义 {@code """ -> "\""}
+ *
+ * @since 1.0.0
*/
public static final String HTML_QUOTE = """;
+
/**
- * 字符串常量:HTML 单引号转义 '
+ * 字符串常量:HTML 单引号转义 {@code "&apos" -> "'"}
*/
public static final String HTML_APOS = "'";
+
/**
- * 字符串常量:HTML 小于号转义 <
+ * 字符串常量:HTML 小于号转义 {@code "<" -> "<"}
+ *
+ * @since 1.0.0
*/
public static final String HTML_LT = "<";
+
/**
- * 字符串常量:HTML 大于号转义 >
+ * 字符串常量:HTML 大于号转义 {@code ">" -> ">"}
+ *
+ * @since 1.0.0
*/
public static final String HTML_GT = ">";
+
/**
- * 字符串常量:空 JSON "{}"
+ * 字符串常量:空 JSON "{}"
+ *
+ * @since 1.0.0
*/
public static final String EMPTY_JSON = "{}";
+
+
// ------------------------------------------------------------------------ Blank
/**
@@ -227,8 +293,21 @@ public class StrUtil {
*
注意:该方法与 {@link #isEmpty(CharSequence)} 的区别是: + * 该方法会校验空白字符,且性能相对于 {@link #isEmpty(CharSequence)} 略慢。
+ *建议:
+ *注意:该方法与 {@link #isEmptyIfStr(Object)} 的区别是: + * 该方法会校验空白字符,且性能相对于 {@link #isEmptyIfStr(Object)} 略慢。
+ * * @param obj 对象 * @return 如果为字符串是否为空串 * @see StrUtil#isBlank(CharSequence) @@ -278,20 +360,52 @@ public class StrUtil { } /** - * 字符串是否为非空白,非空白的定义如下:字符串是否为非空白,非空白的定义如下:
+ *例:
+ *注意:该方法与 {@link #isNotEmpty(CharSequence)} 的区别是: + * 该方法会校验空白字符,且性能相对于 {@link #isNotEmpty(CharSequence)} 略慢。
+ *建议:仅对于客户端(或第三方接口)传入的参数使用该方法。
* * @param str 被检测的字符串 * @return 是否为非空 + * + * @see StrUtil#isBlank(CharSequence) */ public static boolean isNotBlank(CharSequence str) { return false == isBlank(str); } /** - * 是否包含空字符串 + *指定字符串数组中,是否包含空字符串。
+ *如果指定的字符串数组的长度为 0,或者其中的任意一个元素是空字符串,则返回 true。
+ *例:
+ *注意:该方法与 {@link #isAllBlank(CharSequence...)} 的区别在于:
+ *指定字符串数组中的元素,是否全部为空字符串。
+ *如果指定的字符串数组的长度为 0,或者所有元素都是空字符串,则返回 true。
+ *例:
+ *注意:该方法与 {@link #hasBlank(CharSequence...)} 的区别在于:
+ *字符串是否为空,空的定义如下:
+ *例:
+ *注意:该方法与 {@link #isBlank(CharSequence)} 的区别是:该方法不校验空白字符。
+ *建议:
+ *如果对象是字符串是否为空串,空的定义如下:
例:
+ *注意:该方法与 {@link #isBlankIfStr(Object)} 的区别是:该方法不校验空白字符。
* * @param obj 对象 * @return 如果为字符串是否为空串 @@ -361,12 +523,27 @@ public class StrUtil { } /** - * 字符串是否为非空白,非空白的定义如下:字符串是否为非空白,非空白的定义如下:
+ *例:
+ *注意:该方法与 {@link #isNotBlank(CharSequence)} 的区别是:该方法不校验空白字符。
+ *建议:该方法建议用于工具类或任何可以预期的方法参数的校验中。
* * @param str 被检测的字符串 * @return 是否为非空 + * + * @see StrUtil#isEmpty(CharSequence) */ public static boolean isNotEmpty(CharSequence str) { return false == isEmpty(str); @@ -377,6 +554,7 @@ public class StrUtil { * * @param str 被检查的字符串 * @return 原字符串或者空串 + * * @see #nullToEmpty(CharSequence) * @since 4.6.3 */ @@ -395,7 +573,7 @@ public class StrUtil { } /** - * 如果字符串是null
,则返回指定默认字符串,否则返回字符串本身。
+ * 如果字符串是 null
,则返回指定默认字符串,否则返回字符串本身。
*
* * nullToDefault(null, "default") = "default" @@ -461,7 +639,24 @@ public class StrUtil { } /** - * 是否包含空字符串 + *是否包含空字符串。
+ *如果指定的字符串数组的长度为 0,或者其中的任意一个元素是空字符串,则返回 true。
+ *
+ * + *例:
+ *
注意:该方法与 {@link #isAllEmpty(CharSequence...)} 的区别在于:
+ *指定字符串数组中的元素,是否全部为空字符串。
+ *如果指定的字符串数组的长度为 0,或者所有元素都是空字符串,则返回 true。
+ *例:
+ *注意:该方法与 {@link #hasEmpty(CharSequence...)} 的区别在于:
+ *指定字符串数组中的元素,是否都不为空字符串。
+ *如果指定的字符串数组的长度不为 0,或者所有元素都不是空字符串,则返回 true。
+ *例:
+ *注意:该方法与 {@link #isAllEmpty(CharSequence...)} 的区别在于:
+ *