类 StrUtil
- java.lang.Object
-
- cc.shacocloud.mirage.utils.charSequence.StrSplitter
-
- cc.shacocloud.mirage.utils.charSequence.StrUtil
-
public class StrUtil extends StrSplitter
String工具类参考 hutool
- 作者:
- 思追(shaco)
-
-
字段概要
字段 修饰符和类型 字段 说明 static StringAT字符串常量:艾特"@"static StringBACKSLASH字符串常量:反斜杠"\\"static StringBRACKET_END字符串常量:中括号(右)"]"static StringBRACKET_START字符串常量:中括号(左)"["static StringCOLON字符串常量:冒号":"static StringCOMMA字符串常量:逗号","static StringCR字符串常量:回车符"\r"
解释:该字符常用于表示 Linux 系统和 MacOS 系统下的文本换行static StringCRLF字符串常量:Windows 换行"\r\n"
解释:该字符串常用于表示 Windows 系统下的文本换行static StringDASHED字符串常量:减号(连接符)"-"static StringDELIM_END字符串常量:花括号(右)"}"static StringDELIM_START字符串常量:花括号(左)"{"static StringDOT字符串常量:点"."static StringDOUBLE_DOT字符串常量:双点".."
用途:作为指向上级文件夹的路径,如:"../path"static StringEMPTY字符串常量:空字符串""static StringEMPTY_JSON字符串常量:空 JSON"{}"static StringLF字符串常量:换行符"\n"static StringNULL字符串常量:"null"
注意:"null" != nullstatic StringSLASH字符串常量:斜杠"/"static StringTAB字符串常量:制表符"\t"static StringUNDERLINE字符串常量:下划线"_"
-
构造器概要
构造器 构造器 说明 StrUtil()
-
方法概要
所有方法 静态方法 具体方法 修饰符和类型 方法 说明 static StringcleanBlank(CharSequence str)清理空白字符static booleancontains(CharSequence str, char searchChar)指定字符是否在字符串中出现过static booleanendWith(CharSequence str, char c)字符串是否以给定字符结尾static booleanendWith(CharSequence str, CharSequence suffix)是否以指定字符串结尾static booleanendWith(CharSequence str, CharSequence suffix, boolean ignoreCase)是否以指定字符串结尾
如果给定的字符串和开头字符串都为null则返回true,否则任意一个值为null返回falsestatic booleanendWith(CharSequence str, CharSequence suffix, boolean ignoreCase, boolean ignoreEquals)是否以指定字符串结尾
如果给定的字符串和开头字符串都为null则返回true,否则任意一个值为null返回falsestatic booleanequals(CharSequence str1, CharSequence str2)比较两个字符串(大小写敏感)。static booleanequals(CharSequence str1, CharSequence str2, boolean ignoreCase)比较两个字符串是否相等,规则如下 str1和str2都为null忽略大小写使用String.equalsIgnoreCase(String)判断相等 不忽略大小写使用String.contentEquals(CharSequence)判断相等static booleanequalsIgnoreCase(CharSequence str1, CharSequence str2)比较两个字符串(大小写不敏感)。static Stringfilter(CharSequence str, java.util.function.Predicate<Character> filter)过滤字符串static intindexOf(CharSequence str, char searchChar)指定范围内查找指定字符static intindexOf(CharSequence str, char searchChar, int start)指定范围内查找指定字符static intindexOf(CharSequence text, char searchChar, int start, int end)指定范围内查找指定字符static booleanisBlank(CharSequence str)字符串是否为空白,空白的定义如下:static booleanisEmpty(CharSequence str)字符串是否为空,空的定义如下:static booleanisEmptyIfStr(Object obj)如果对象是字符串是否为空串,空的定义如下:static booleanisNotBlank(CharSequence str)字符串是否不是空白static booleanisNotEmpty(CharSequence str)字符串是否为非空白,非空白的定义如下:static booleanisSubEquals(CharSequence str1, int start1, CharSequence str2, int start2, int length, boolean ignoreCase)截取两个字符串的不同部分(长度一致),判断截取的子串是否相同
任意一个字符串为null返回falsestatic Stringjoin(Object[] arr, String delimiter)将一个 数组转换为一个带分隔符的Stringstatic intlength(CharSequence cs)获取字符串的长度,如果为null返回0static StringlowerFirst(CharSequence str)小写首字母
例如:str = Name, return namestatic StringremovePrefix(CharSequence str, CharSequence prefix)去掉指定前缀static StringremovePrefixIgnoreCase(CharSequence str, CharSequence prefix)忽略大小写去掉指定前缀static StringremoveSuffix(CharSequence str, CharSequence suffix)去掉指定后缀static booleanstartWith(CharSequence str, char c)字符串是否以给定字符开始static booleanstartWith(CharSequence str, CharSequence prefix)是否以指定字符串开头
如果给定的字符串和开头字符串都为null则返回true,否则任意一个值为null返回falsestatic booleanstartWith(CharSequence str, CharSequence prefix, boolean ignoreCase)是否以指定字符串开头
如果给定的字符串和开头字符串都为null则返回true,否则任意一个值为null返回falsestatic booleanstartWith(CharSequence str, CharSequence prefix, boolean ignoreCase, boolean ignoreEquals)是否以指定字符串开头
如果给定的字符串和开头字符串都为null则返回true,否则任意一个值为null返回falsestatic booleanstartWithIgnoreCase(CharSequence str, CharSequence prefix)是否以指定字符串开头,忽略大小写static Stringstr(CharSequence cs)CharSequence转为字符串,null安全static Stringsub(CharSequence str, int fromIndexInclude, int toIndexExclude)改进JDK subString
index从0开始计算,最后一个字符为-1
如果from和to位置一样,返回 ""
如果from或to为负数,则按照length从后向前数位置,如果绝对值大于字符串长度,则from归到0,to归到length
如果经过修正的index中from大于to,则互换from和to example:
abcdefgh 2 3 =》 c
abcdefgh 2 -3 =》 cdestatic StringsubPre(CharSequence string, int toIndexExclude)切割指定位置之前部分的字符串static booleansubstringMatch(@NotNull CharSequence str, int index, @NotNull CharSequence substring)测试给定字符串是否与给定索引处的给定子字符串匹配static @Nullable StringsubSuf(CharSequence string, int fromIndex)切割指定位置之后部分的字符串static StringtoCamelCase(CharSequence name)将下划线方式命名的字符串转换为驼峰式。static StringtoCamelCase(CharSequence name, char symbol)将连接符方式命名的字符串转换为驼峰式。static StringtoLowerFirstCamelCase(CharSequence name)将下划线方式命名的字符串转换为小写开头的驼峰式static StringtoStringOrNull(Object obj)调用对象的toString方法,null会返回nullstatic Stringtrim(CharSequence str)除去字符串头尾部的空白,如果字符串是null,依然返回null。static Stringtrim(CharSequence str, int mode)除去字符串头尾部的空白符,如果字符串是null,依然返回null。static Stringtrim(CharSequence str, int mode, java.util.function.Predicate<Character> predicate)按照断言,除去字符串头尾部的断言为真的字符,如果字符串是null,依然返回null。static StringtrimLeadingCharacter(String str, char leadingCharacter)从给定的字符串中修剪提供的前导字符的所有匹配项static StringtrimStart(CharSequence str)除去字符串头部的空白,如果字符串是null,则返回null。static @Nullable StringtrimToNull(CharSequence str)除去字符串头尾部的空白,如果字符串是null或者"",返回null。static StringtrimTrailingCharacter(String str, char trailingCharacter)从给定的字符串中修剪提供的所有尾随字符-
从类继承的方法 cc.shacocloud.mirage.utils.charSequence.StrSplitter
split, split, split, split, split, split, split, split, split, split, splitByLength, splitIgnoreCase, splitIgnoreCase, splitPath, splitPath, splitPathToArray, splitPathToArray, splitToArray, splitToArray, splitToArray, splitToArray, splitTrim, splitTrim, splitTrim, splitTrim, splitTrimIgnoreCase
-
-
-
-
方法详细资料
-
isSubEquals
public static boolean isSubEquals(CharSequence str1, int start1, CharSequence str2, int start2, int length, boolean ignoreCase)
截取两个字符串的不同部分(长度一致),判断截取的子串是否相同
任意一个字符串为null返回false- 参数:
str1- 第一个字符串start1- 第一个字符串开始的位置str2- 第二个字符串start2- 第二个字符串开始的位置length- 截取长度ignoreCase- 是否忽略大小写- 返回:
- 子串是否相同
-
isEmpty
public static boolean isEmpty(CharSequence str)
字符串是否为空,空的定义如下:
null- 空字符串:
""
例:
StrUtil.isEmpty(null) // trueStrUtil.isEmpty("") // trueStrUtil.isEmpty(" \t\n") // falseStrUtil.isEmpty("abc") // false
注意:该方法与
isBlank(CharSequence)的区别是:该方法不校验空白字符。建议:
- 该方法建议用于工具类或任何可以预期的方法参数的校验中。
- 参数:
str- 被检测的字符串- 返回:
- 是否为空
- 另请参阅:
isBlank(CharSequence)
-
isNotEmpty
public static boolean isNotEmpty(CharSequence str)
字符串是否为非空白,非空白的定义如下:
- 不为
null - 不为空字符串:
""
例:
StrUtil.isNotEmpty(null) // falseStrUtil.isNotEmpty("") // falseStrUtil.isNotEmpty(" \t\n") // trueStrUtil.isNotEmpty("abc") // true
注意:该方法与
isNotBlank(CharSequence)的区别是:该方法不校验空白字符。建议:该方法建议用于工具类或任何可以预期的方法参数的校验中。
- 参数:
str- 被检测的字符串- 返回:
- 是否为非空
- 另请参阅:
isEmpty(CharSequence)
- 不为
-
isNotBlank
public static boolean isNotBlank(CharSequence str)
字符串是否不是空白- 另请参阅:
isBlank(CharSequence)
-
isBlank
public static boolean isBlank(CharSequence str)
字符串是否为空白,空白的定义如下:
null- 空字符串:
"" - 空格、全角空格、制表符、换行符,等不可见字符
例:
StrUtil.isBlank(null) // trueStrUtil.isBlank("") // trueStrUtil.isBlank(" \t\n") // trueStrUtil.isBlank("abc") // false
- 参数:
str- 被检测的字符串- 返回:
- 若为空白,则返回 true
-
join
public static String join(Object[] arr, String delimiter)
将一个 数组转换为一个带分隔符的String- 参数:
arr- 数组元素delimiter- 要使用的分隔符(通常是",")。- 返回:
- 带分隔符的
String
-
isEmptyIfStr
public static boolean isEmptyIfStr(Object obj)
如果对象是字符串是否为空串,空的定义如下:
null- 空字符串:
""
例:
StrUtil.isEmptyIfStr(null) // trueStrUtil.isEmptyIfStr("") // trueStrUtil.isEmptyIfStr(" \t\n") // falseStrUtil.isEmptyIfStr("abc") // false
- 参数:
obj- 对象- 返回:
- 如果为字符串是否为空串
-
trimToNull
@Nullable public static @Nullable String trimToNull(CharSequence str)
除去字符串头尾部的空白,如果字符串是null或者"",返回null。StrUtil.trimToNull(null) = null StrUtil.trimToNull("") = null StrUtil.trimToNull(" ") = null StrUtil.trimToNull("abc") = "abc" StrUtil.trimToEmpty(" abc ") = "abc"- 参数:
str- 字符串- 返回:
- 去除两边空白符后的字符串, 如果为空返回null
-
trimStart
public static String trimStart(CharSequence str)
除去字符串头部的空白,如果字符串是null,则返回null。注意,和
String.trim()不同,此方法使用CharUtil.isBlankChar(char)来判定空白, 因而可以除去英文字符集之外的其它空白,如中文空格。trimStart(null) = null trimStart("") = "" trimStart("abc") = "abc" trimStart(" abc") = "abc" trimStart("abc ") = "abc " trimStart(" abc ") = "abc "- 参数:
str- 要处理的字符串- 返回:
- 除去空白的字符串,如果原字串为
null或结果字符串为"",则返回null
-
trim
public static String trim(CharSequence str)
除去字符串头尾部的空白,如果字符串是null,依然返回null。注意,和
String.trim()不同,此方法使用CharUtil.isBlankChar(char)来判定空白, 因而可以除去英文字符集之外的其它空白,如中文空格。trim(null) = null trim("") = "" trim(" ") = "" trim("abc") = "abc" trim(" abc ") = "abc"- 参数:
str- 要处理的字符串- 返回:
- 除去头尾空白的字符串,如果原字串为
null,则返回null
-
trim
public static String trim(CharSequence str, int mode)
除去字符串头尾部的空白符,如果字符串是null,依然返回null。- 参数:
str- 要处理的字符串mode--1表示trimStart,0表示trim全部,1表示trimEnd- 返回:
- 除去指定字符后的的字符串,如果原字串为
null,则返回null
-
trim
public static String trim(CharSequence str, int mode, java.util.function.Predicate<Character> predicate)
按照断言,除去字符串头尾部的断言为真的字符,如果字符串是null,依然返回null。- 参数:
str- 要处理的字符串mode--1表示trimStart,0表示trim全部,1表示trimEndpredicate- 断言是否过掉字符,返回true表述过滤掉,false表示不过滤- 返回:
- 除去指定字符后的的字符串,如果原字串为
null,则返回null
-
length
public static int length(CharSequence cs)
获取字符串的长度,如果为null返回0- 参数:
cs- 字符串- 返回:
- 字符串的长度,如果为null返回0
-
endWith
public static boolean endWith(CharSequence str, char c)
字符串是否以给定字符结尾- 参数:
str- 字符串c- 字符- 返回:
- 是否结尾
-
endWith
public static boolean endWith(CharSequence str, CharSequence suffix, boolean ignoreCase)
是否以指定字符串结尾
如果给定的字符串和开头字符串都为null则返回true,否则任意一个值为null返回false- 参数:
str- 被监测字符串suffix- 结尾字符串ignoreCase- 是否忽略大小写- 返回:
- 是否以指定字符串结尾
-
endWith
public static boolean endWith(CharSequence str, CharSequence suffix, boolean ignoreCase, boolean ignoreEquals)
是否以指定字符串结尾
如果给定的字符串和开头字符串都为null则返回true,否则任意一个值为null返回false- 参数:
str- 被监测字符串suffix- 结尾字符串ignoreCase- 是否忽略大小写ignoreEquals- 是否忽略字符串相等的情况- 返回:
- 是否以指定字符串结尾
-
endWith
public static boolean endWith(CharSequence str, CharSequence suffix)
是否以指定字符串结尾- 参数:
str- 被监测字符串suffix- 结尾字符串- 返回:
- 是否以指定字符串结尾
-
equals
public static boolean equals(CharSequence str1, CharSequence str2)
比较两个字符串(大小写敏感)。equals(null, null) = true equals(null, "abc") = false equals("abc", null) = false equals("abc", "abc") = true equals("abc", "ABC") = false- 参数:
str1- 要比较的字符串1str2- 要比较的字符串2- 返回:
- 如果两个字符串相同,或者都是
null,则返回true
-
equalsIgnoreCase
public static boolean equalsIgnoreCase(CharSequence str1, CharSequence str2)
比较两个字符串(大小写不敏感)。equalsIgnoreCase(null, null) = true equalsIgnoreCase(null, "abc") = false equalsIgnoreCase("abc", null) = false equalsIgnoreCase("abc", "abc") = true equalsIgnoreCase("abc", "ABC") = true- 参数:
str1- 要比较的字符串1str2- 要比较的字符串2- 返回:
- 如果两个字符串相同,或者都是
null,则返回true
-
equals
public static boolean equals(CharSequence str1, CharSequence str2, boolean ignoreCase)
比较两个字符串是否相等,规则如下- str1和str2都为
null - 忽略大小写使用
String.equalsIgnoreCase(String)判断相等 - 不忽略大小写使用
String.contentEquals(CharSequence)判断相等
- 参数:
str1- 要比较的字符串1str2- 要比较的字符串2ignoreCase- 是否忽略大小写- 返回:
- 如果两个字符串相同,或者都是
null,则返回true
- str1和str2都为
-
trimLeadingCharacter
public static String trimLeadingCharacter(String str, char leadingCharacter)
从给定的字符串中修剪提供的前导字符的所有匹配项- 参数:
str- 要检查的字符串leadingCharacter- 要修剪的字节- 返回:
- 修剪后的
字符串
-
trimTrailingCharacter
public static String trimTrailingCharacter(String str, char trailingCharacter)
从给定的字符串中修剪提供的所有尾随字符- 参数:
str- 要检查的字符串trailingCharacter- 要修剪的尾随字符- 返回:
- 修剪后的
字符串
-
cleanBlank
public static String cleanBlank(CharSequence str)
清理空白字符- 参数:
str- 被清理的字符串- 返回:
- 清理后的字符串
-
filter
public static String filter(CharSequence str, java.util.function.Predicate<Character> filter)
过滤字符串- 参数:
str- 字符串filter- 过滤器,Predicate.test(Object)返回为true的保留字符- 返回:
- 过滤后的字符串
-
str
public static String str(CharSequence cs)
CharSequence转为字符串,null安全- 参数:
cs-CharSequence- 返回:
- 字符串
-
removeSuffix
public static String removeSuffix(CharSequence str, CharSequence suffix)
去掉指定后缀- 参数:
str- 字符串suffix- 后缀- 返回:
- 切掉后的字符串,若后缀不是 suffix, 返回原字符串
-
removePrefix
public static String removePrefix(CharSequence str, CharSequence prefix)
去掉指定前缀- 参数:
str- 字符串prefix- 前缀- 返回:
- 切掉后的字符串,若前缀不是 prefix, 返回原字符串
-
subPre
public static String subPre(CharSequence string, int toIndexExclude)
切割指定位置之前部分的字符串- 参数:
string- 字符串toIndexExclude- 切割到的位置(不包括)- 返回:
- 切割后的剩余的前半部分字符串
-
subSuf
@Nullable public static @Nullable String subSuf(CharSequence string, int fromIndex)
切割指定位置之后部分的字符串- 参数:
string- 字符串fromIndex- 切割开始的位置(包括)- 返回:
- 切割后后剩余的后半部分字符串
-
sub
public static String sub(CharSequence str, int fromIndexInclude, int toIndexExclude)
改进JDK subString
index从0开始计算,最后一个字符为-1
如果from和to位置一样,返回 ""
如果from或to为负数,则按照length从后向前数位置,如果绝对值大于字符串长度,则from归到0,to归到length
如果经过修正的index中from大于to,则互换from和to example:
abcdefgh 2 3 =》 c
abcdefgh 2 -3 =》 cde- 参数:
str- StringfromIndexInclude- 开始的index(包括)toIndexExclude- 结束的index(不包括)- 返回:
- 字串
-
toStringOrNull
public static String toStringOrNull(Object obj)
调用对象的toString方法,null会返回null- 参数:
obj- 对象- 返回:
- 字符串 or
null
-
startWithIgnoreCase
public static boolean startWithIgnoreCase(CharSequence str, CharSequence prefix)
是否以指定字符串开头,忽略大小写- 参数:
str- 被监测字符串prefix- 开头字符串- 返回:
- 是否以指定字符串开头
-
startWith
public static boolean startWith(CharSequence str, char c)
字符串是否以给定字符开始- 参数:
str- 字符串c- 字符- 返回:
- 是否开始
-
startWith
public static boolean startWith(CharSequence str, CharSequence prefix)
是否以指定字符串开头
如果给定的字符串和开头字符串都为null则返回true,否则任意一个值为null返回false- 参数:
str- 被监测字符串prefix- 开头字符串- 返回:
- 是否以指定字符串开头
-
startWith
public static boolean startWith(CharSequence str, CharSequence prefix, boolean ignoreCase)
是否以指定字符串开头
如果给定的字符串和开头字符串都为null则返回true,否则任意一个值为null返回false- 参数:
str- 被监测字符串prefix- 开头字符串ignoreCase- 是否忽略大小写- 返回:
- 是否以指定字符串开头
-
startWith
public static boolean startWith(CharSequence str, CharSequence prefix, boolean ignoreCase, boolean ignoreEquals)
是否以指定字符串开头
如果给定的字符串和开头字符串都为null则返回true,否则任意一个值为null返回false
CharSequenceUtil.startWith("123", "123", false, true); -- false CharSequenceUtil.startWith("ABCDEF", "abc", true, true); -- true CharSequenceUtil.startWith("abc", "abc", true, true); -- false- 参数:
str- 被监测字符串prefix- 开头字符串ignoreCase- 是否忽略大小写ignoreEquals- 是否忽略字符串相等的情况- 返回:
- 是否以指定字符串开头
-
lowerFirst
public static String lowerFirst(CharSequence str)
小写首字母
例如:str = Name, return name- 参数:
str- 字符串- 返回:
- 字符串
-
toLowerFirstCamelCase
public static String toLowerFirstCamelCase(CharSequence name)
将下划线方式命名的字符串转换为小写开头的驼峰式
-
toCamelCase
public static String toCamelCase(CharSequence name)
将下划线方式命名的字符串转换为驼峰式。如果转换前的下划线大写方式命名的字符串为空,则返回空字符串。
规则为:- 单字之间不以空格或任何连接符断开
- 第一个单字首字母采用小写字母
- 后续单字的首字母亦用大写字母
- 参数:
name- 转换前的下划线大写方式命名的字符串- 返回:
- 转换后的驼峰式命名的字符串
-
toCamelCase
public static String toCamelCase(CharSequence name, char symbol)
将连接符方式命名的字符串转换为驼峰式。如果转换前的字符串为空,则返回空字符串。- 参数:
name- 转换前的自定义方式命名的字符串symbol- 原字符串中的连接符连接符- 返回:
- 转换后的驼峰式命名的字符串
-
contains
public static boolean contains(CharSequence str, char searchChar)
指定字符是否在字符串中出现过- 参数:
str- 字符串searchChar- 被查找的字符- 返回:
- 是否包含
-
indexOf
public static int indexOf(CharSequence str, char searchChar)
指定范围内查找指定字符- 参数:
str- 字符串searchChar- 被查找的字符- 返回:
- 位置
-
indexOf
public static int indexOf(CharSequence str, char searchChar, int start)
指定范围内查找指定字符- 参数:
str- 字符串searchChar- 被查找的字符start- 起始位置,如果小于0,从0开始查找- 返回:
- 位置
-
indexOf
public static int indexOf(CharSequence text, char searchChar, int start, int end)
指定范围内查找指定字符- 参数:
text- 字符串searchChar- 被查找的字符start- 起始位置,如果小于0,从0开始查找end- 终止位置,如果超过str.length()则默认查找到字符串末尾- 返回:
- 位置
-
substringMatch
public static boolean substringMatch(@NotNull @NotNull CharSequence str, int index, @NotNull @NotNull CharSequence substring)测试给定字符串是否与给定索引处的给定子字符串匹配- 参数:
str- 原始字符串index- 原始字符串中要开始匹配的索引substring- 要在给定索引处匹配的子字符串
-
removePrefixIgnoreCase
public static String removePrefixIgnoreCase(CharSequence str, CharSequence prefix)
忽略大小写去掉指定前缀- 参数:
str- 字符串prefix- 前缀- 返回:
- 切掉后的字符串,若前缀不是 prefix, 返回原字符串
-
-