public abstract class StringUtil extends Object
| 限定符和类型 | 字段和说明 |
|---|---|
protected static char[] |
digits
用于在2-16进制之间进行转换的映射字符数组
|
| 构造器和说明 |
|---|
StringUtil() |
| 限定符和类型 | 方法和说明 |
|---|---|
static StringBuilder |
append(StringBuilder sb,
String... strs)
拼接多个字符串(忽略其中为 null 的参数)
|
static String |
capitalize(String str)
将字符串的首字母大写
|
static String |
concat(String a,
String b)
拼接两个字符串(忽略其中为 null 的参数)
|
static String |
concat(String a,
String b,
String c)
拼接多个字符串(忽略其中为 null 的参数)
|
static String |
concats(String... strs)
拼接多个字符串(忽略其中为 null 的参数)
|
static boolean |
containsWord(String container,
String searchedWord,
String seperatorChars)
检测指定字符串中是否存在指定的单词
该方法采用快速模式,对于类似 containsWord("abc123,123", "123", ",") 等特殊情况无法保证100%可靠;如果想要保证可靠性,建议使用 containsWord(String, String, String, boolean) |
static boolean |
containsWord(String container,
String search,
String seperatorChars,
boolean fastMode)
检测指定字符串中是否存在指定的单词
|
static String |
convertCharset(String str,
Charset originalCharset,
Charset targetCharset)
将字符串从指定字符集编码转换为目标字符集编码
|
static String |
convertCharsetForURI(String str,
Charset targetCharset)
将指定的URI参数字符串转换为目标字符集编码
本方法实际上是将字符串从ISO-8859-1编码转换为指定的目标编码 |
static String |
decapitalize(String str)
将字符串的首字母小写
|
static boolean |
endsWith(String str,
char lastChar)
判断指定字符串是否以指定的单个字符结尾
|
static int[] |
ensureRangeSafe(int beginIndex,
int endIndex,
int length)
确保起始和结束索引的范围边界安全,并返回范围安全的 [开始索引, 结束索引] 数组
如果索引参数为负,自动加上 length,如果处理后的 beginIndex > endIndex,则自动对调位置方法起始索引或结束索引超出合理边界,方法内会尽可能地根据 length 进行调整:1、如果 beginIndex < -length ,则 beginIndex = 02、如果 endIndex > length ,则 endIndex = length |
static StringBuilder |
escape(StringBuilder sb,
String str,
char escapeChar,
char[] escapedChars)
使用转义字符转义字符串中指定的字符
|
static String |
escape(String str,
char escapeChar,
char[] escapedChars)
使用转义字符转义字符串中指定的字符
|
static String |
escapeSQLLike(String likeStr)
将指定的用于LIKE语句的字符串转义,以防止SQL语句注入
该方法默认使用'\'进行转义操作 |
static String |
escapeSQLLike(String likeStr,
boolean appendLikeWildcard)
将指定的用于LIKE语句的字符串转义,以防止SQL语句注入
该方法默认使用'\'进行转义操作 |
static String |
escapeSQLLike(String likeStr,
boolean appendWildcardAtStart,
boolean appendWildcardAtEnd)
使用指定的转义字符对用于LIKE语句的字符串进行转义,以防止SQL语句注入
|
static StringBuilder |
escapeSQLLike(StringBuilder sb,
String likeStr,
char escapeChar,
boolean appendWildcardAtStart,
boolean appendWildcardAtEnd)
使用指定的转义字符对用于LIKE语句的字符串进行转义,以防止SQL语句注入
|
static String |
escapeSQLLike(String likeStr,
char escapeChar,
boolean appendWildcardAtBoth)
使用指定的转义字符对用于LIKE语句的字符串进行转义,以防止SQL语句注入
|
static String |
escapeSQLLike(String likeStr,
char escapeChar,
boolean appendWildcardAtStart,
boolean appendWildcardAtEnd)
使用指定的转义字符对用于LIKE语句的字符串进行转义,以防止SQL语句注入
|
static String |
fastUnicode(String str)
获取指定字符串的Unicode编码,例如:"中国"将返回"中国"
此方法返回的编码中,字母均采用大写形式,此外,由于编码的长度是已知的,本方法采用char数组作为字符容器,省略了StringBuilder追加时的长度判断以及封装损耗,性能更加优异 |
static StringBuilder |
getBuilder(int extra,
CharSequence s1)
根据将要追加的多个字符序列获得适当初始容量的
StringBuilder |
static StringBuilder |
getBuilder(int extra,
CharSequence s1,
CharSequence s2)
根据将要追加的多个字符序列获得适当初始容量的
StringBuilder |
static StringBuilder |
getBuilder(int extra,
CharSequence s1,
CharSequence s2,
CharSequence s3)
根据将要追加的多个字符序列获得适当初始容量的
StringBuilder |
static StringBuilder |
getBuilder(int extra,
CharSequence s1,
CharSequence s2,
CharSequence s3,
CharSequence s4)
根据将要追加的多个字符序列获得适当初始容量的
StringBuilder |
static StringBuilder |
getBuilder(int size,
int shift)
根据每个元素的平均大小和元素的格式创建一个适用于其容量的StringBuilder
内部采用 length << shift 来获取设置初始容量并且生成的StringBuilder的最小容量为16(StringBuilder的默认容量) |
static boolean |
hasBlank(Object... values)
判断指定数组中是否为空的值(null、空字符串、空格字符串),如果是,将返回true
本方法接受多个参数,如果其中有任意一个为空,就返回true 本方法会去除两边的空格后再判断 如果指定的key不存在也返回true |
static boolean |
hasEmpty(Object... values)
判断指定数组中是否存在为空的值(null、空字符串),如果是将返回true
本方法接受多个参数,如果其中有任意一个为空,就返回true 如果指定的key不存在也返回true |
static StringBuilder |
initBuilder(StringBuilder sb,
int appendLength)
初始化一个还可以添加
appendLength 个字符的 StringBuilder |
static boolean |
isAnyNotEmpty(CharSequence... css)
判断指定的字符序列数组是否存在不为空的元素
如果数组中存在不为null、空字符串的元素,则返回true,否则返回false |
static boolean |
isBlank(CharSequence str)
判断指定的字符串是否为空
如果字符串为null、空字符串、空格字符串,则返回true 注意:本方法会先去除字符串两边的空格,再判断 |
static boolean |
isBlank(Object obj)
判断指定的对象是否为空
如果对象(或其 toString() 返回值)为null、空字符串、空格字符串,则返回true 注意:本方法会先去除字符串两边的空格,再判断 |
static boolean |
isEmpty(CharSequence cs)
判断指定的字符串是否为空
如果字符串为null、空字符串,则返回true,否则返回false 注意:本方法不会去除字符串两边的空格,如果需要对字符串进行去除两边空格后的判断,请使用 isBlank(CharSequence) 方法 |
static boolean |
isEmpty(Object obj)
判断指定的对象是否为空
如果对象(或其 toString() 返回值)为null、空字符串,则返回true 注意:本方法不会去除字符串两边的空格,如果需要对字符串进行去除两边空格后的判断,请使用isBlank(Object obj)方法 |
static String |
leftPad(String str,
char ch,
int maxLength)
如果字符串不足指定位数,则在前面补充指定的字符,直到指定位数
如果字符串=null,则返回空字符串"" 如果字符串位数大于指定位数,则返回原字符串 |
static int |
length(CharSequence cs)
获取指定字符序列的字符长度
|
static String |
limitChars(String str,
int maxLength)
如果指定字符串超过限制长度
maxLength,则返回限制长度前面的部分字符串如果指定字符串==null,则返回空字符串 如果字符串超出指定长度,则返回maxLength前面的部分,并在末尾加上后缀“...” |
static String |
limitChars(String str,
int maxLength,
String suffix)
如果指定字符串超过限制长度
maxLength,则返回限制长度前面的部分字符串如果指定字符串==null,则返回空字符串 如果字符串超出指定长度,则返回maxLength前面的部分,并在末尾加上后缀 suffix |
static boolean |
notBlank(CharSequence cs)
判断指定的字符串是否不为空
如果字符串不为null、空字符串、空格字符串,则返回true,否则返回false 注意:本方法会先去除字符串两边的空格,再判断 |
static boolean |
notBlank(Object obj)
判断指定的对象是否为空
如果对象(或其 toString() 返回值)不为null、空字符串、空格字符串,则返回true,否则返回false 注意:本方法会先去除字符串两边的空格,再判断 |
static boolean |
notEmpty(CharSequence cs)
判断指定的字符串是否不为空
如果指定字符串不为null、空字符串,则返回true,否则返回false 注意:本方法不会去除字符串两边的空格,如果需要对字符串进行去除两边空格后的判断,请使用 notBlank(CharSequence) 方法 |
static boolean |
notEmpty(Object obj)
判断指定的对象是否不为空
如果对象(或其 toString() 返回值)不为null、空字符串,则返回true,否则返回false 注意:本方法不会去除字符串两边的空格,如果需要对字符串进行去除两边空格后的判断,请使用 isBlank(Object obj)方法 |
static String |
nullSafeGet(CharSequence cs)
安全地获取指定字符序列中的字符串
|
static String |
nullSafeGet(Supplier<? extends CharSequence> msgSupplier)
安全地执行指定的字符串懒加载表达式,并返回对应的字符串
|
static String |
replaceChar(String str,
int charIndex,
CharConverter converter)
替换字符串中指定位置的字符,并返回替换后的结果
|
static String |
replaceChars(String str,
char ch,
int beginIndex)
将指定字符串的
beginIndex 到末尾之间的字符全部替换为字符 ch |
static String |
replaceChars(String str,
char ch,
int beginIndex,
int endIndex)
将指定字符串的
beginIndex 到 endIndex (不包括 endIndex ) 之间的字符全部替换为字符 ch |
static String |
replaceSubstring(String str,
String replacement,
int beginIndex)
将指定字符串的
beginIndex 及其后的子字符串全部替换为指定的字符串 replacement |
static String |
replaceSubstring(String str,
String replacement,
int beginIndex,
int endIndex)
将指定字符串的
beginIndex 到 endIndex (不包括 endIndex ) 之间的子字符串全部替换为指定的字符串 replacement |
static String |
reverse(CharSequence str)
颠倒(反转)字符串的字符顺序,并返回颠倒后的字符串
如果字符串为null,则返回空字符串"" |
static String |
rightPad(String str,
char ch,
int maxLength)
如果字符串不足指定位数,则在后面补充指定的字符,直到指定位数
如果字符串=null,则返回空字符串"" 如果字符串位数大于指定位数,则返回原字符串 |
static <T> List<T> |
split(String str,
String sep,
Function<? super String,T> mapper,
boolean ignoreNull)
将以指定分隔字符分隔字符串,并将拆分后的每个片段文本使用指定的
mapper 进行转换,并返回转换后的元素集合 |
static <T> List<T> |
split(String str,
String sep,
Function<String,T> mapper)
将以指定分隔字符分隔字符串,并将拆分后的每个片段文本使用指定的
mapper 进行转换,并返回转换后的元素集合 |
static boolean |
startsWith(String str,
char firstChar)
判断指定字符串是否以指定的单个字符开头
|
static String |
toString(Object obj)
以String的形式返回对象值,如果对象为null,则返回""
|
static String |
toString(Object obj,
String defaultValIfNull)
以String的形式返回对象值,如果对象为null,则返回""
|
static String |
trim(Object obj)
以去除两边空格的String形式返回对象值,如果对象为null,则返回""
|
static String |
trim(String str)
去除字符串两侧的空白字符
如果为null则返回空字符串"" |
static String |
trim4Html(Object obj)
以String的形式返回对象值,如果对象为null或空格字符串,则返回" "
|
static StringBuilder |
unescape(StringBuilder sb,
String escapedStr,
char escapeChar,
char[] escapedChars)
解除对使用
escape(StringBuilder, String, char, char[]) 方法转义后的字符串的转义 |
static String |
unescape(String escapedStr,
char escapeChar,
char[] escapedChars)
解除对使用
escape(StringBuilder, String, char, char[]) 方法转义后的字符串的转义 |
static String |
unicode(String src)
获取指定字符串的Unicode编码,例如:“中国”将返回“中国”
此方法返回的编码中,字母均采用大写形式,此外,本方法采用 StringBuilder 作为字符容器 |
static String |
zeroFill(String str,
int maxLength)
如果字符串不足指定位数,则前面补0,直到指定位数
如果字符串=null,则返回空字符串"" 如果字符串位数大于指定位数,则返回原字符串 |
public static String unicode(String src)
StringBuilder 作为字符容器src - 指定字符串不能为 null,否则将引发空指针异常public static String fastUnicode(String str)
str - 指定字符串不能为null,否则将引发空指针异常public static StringBuilder getBuilder(int size, int shift)
length << shift 来获取设置初始容量size - 元素个数shift - 每个元素参与拼接的平均字符数相对于2的位移量public static int length(CharSequence cs)
cs 为 null,则返回 0public static StringBuilder getBuilder(int extra, CharSequence s1, CharSequence s2, CharSequence s3, CharSequence s4)
StringBuilderextra - 除指定的字符序列外应额外预留的字符容量public static StringBuilder getBuilder(int extra, CharSequence s1, CharSequence s2, CharSequence s3)
StringBuilderextra - 除指定的字符序列外应额外预留的字符容量public static StringBuilder getBuilder(int extra, CharSequence s1, CharSequence s2)
StringBuilderextra - 除指定的字符序列外应额外预留的字符容量public static StringBuilder getBuilder(int extra, CharSequence s1)
StringBuilderextra - 除指定的字符序列外应额外预留的字符容量@Nullable public static String concat(@Nullable String a, @Nullable String b)
public static String concat(@Nullable String a, @Nullable String b, @Nullable String c)
public static StringBuilder append(@Nullable StringBuilder sb, String... strs)
public static StringBuilder initBuilder(@Nullable StringBuilder sb, int appendLength)
appendLength 个字符的 StringBuildersb - 如果为null,内部会自动创建appendLength - 还需要扩展的字符数public static boolean isEmpty(CharSequence cs)
isBlank(CharSequence) 方法public static boolean notEmpty(CharSequence cs)
notBlank(CharSequence) 方法public static boolean isAnyNotEmpty(CharSequence... css)
public static boolean isEmpty(Object obj)
obj - 指定的对象public static boolean notEmpty(Object obj)
isBlank(Object obj)方法obj - 指定的对象public static boolean hasEmpty(Object... values)
values - 指定的数组isEmpty(Object)public static boolean isBlank(CharSequence str)
public static boolean notBlank(CharSequence cs)
public static boolean isBlank(Object obj)
obj - 指定的对象public static boolean notBlank(Object obj)
obj - 指定的对象public static boolean hasBlank(Object... values)
values - 指定的数组public static String toString(Object obj)
obj - 指定的对象@Nullable public static String nullSafeGet(@Nullable Supplier<? extends CharSequence> msgSupplier)
@Nullable public static String nullSafeGet(@Nullable CharSequence cs)
cs - 如果该参数为 null,则返回 nullpublic static String toString(Object obj, String defaultValIfNull)
obj - 指定的对象public static String trim(Object obj)
obj - 指定的对象public static String trim4Html(Object obj)
obj - 指定的对象public static String limitChars(String str, int maxLength, String suffix)
maxLength,则返回限制长度前面的部分字符串suffixstr - 指定的字符串maxLength - 最大限制长度suffix - 超出长度时添加的指定后缀,如果不需要,可以为nullpublic static String limitChars(String str, int maxLength)
maxLength,则返回限制长度前面的部分字符串str - 指定的字符串maxLength - 最大限制长度public static String zeroFill(String str, int maxLength)
str - 字符串maxLength - 指定位数,不能小于1public static String leftPad(String str, char ch, int maxLength)
str - 字符串ch - 指定的字符maxLength - 指定位数,不能小于1public static String rightPad(String str, char ch, int maxLength)
str - 字符串ch - 指定的字符maxLength - 指定位数,不能小于1public static String replaceChars(String str, char ch, int beginIndex, int endIndex)
beginIndex 到 endIndex (不包括 endIndex ) 之间的字符全部替换为字符 chstr - 指定的字符串ch - 指定的字符beginIndex - 指定的字符串起始索引(可以为负数,表示 beginIndex + str.length() )endIndex - 指定的字符串结束索引(可以为负数,表示 endIndex + str.length() )public static int[] ensureRangeSafe(int beginIndex,
int endIndex,
int length)
length,如果处理后的 beginIndex > endIndex,则自动对调位置length 进行调整:beginIndex < -length ,则 beginIndex = 0endIndex > length ,则 endIndex = lengthbeginIndex - 起始索引endIndex - 结束索引length - 指定数组、集合或字符串的长度,不能小于0public static String replaceChars(String str, char ch, int beginIndex)
beginIndex 到末尾之间的字符全部替换为字符 chstr - 指定的字符串ch - 指定的字符beginIndex - 指定的字符串起始索引(可以为负数,表示 beginIndex + str.length() )public static String replaceSubstring(String str, String replacement, int beginIndex, int endIndex)
beginIndex 到 endIndex (不包括 endIndex ) 之间的子字符串全部替换为指定的字符串 replacementstr - 指定的字符串replacement - 指定的字符串beginIndex - 指定的字符串起始索引(可以为负数,表示 beginIndex + str.length() )endIndex - 指定的字符串结束索引(可以为负数,表示 endIndex + str.length() )public static String replaceSubstring(String str, String replacement, int beginIndex)
beginIndex 及其后的子字符串全部替换为指定的字符串 replacementstr - 指定的字符串replacement - 指定的字符串beginIndex - 指定的字符串起始索引(可以为负数,表示 beginIndex + str.length() )public static String convertCharset(String str, Charset originalCharset, Charset targetCharset)
str - 指定的字符串originalCharset - 原始字符集编码targetCharset - 目标字符集编码public static String convertCharsetForURI(String str, Charset targetCharset)
str - 指定的URI参数字符串targetCharset - 目标字符集编码public static String reverse(CharSequence str)
str - 指定的字符串public static boolean startsWith(String str, char firstChar)
str - 指定的字符串firstChar - 指定的单个字符public static boolean endsWith(String str, char lastChar)
str - 指定的字符串lastChar - 指定的单个字符public static StringBuilder escape(@Nullable StringBuilder sb, String str, char escapeChar, char[] escapedChars)
sb - 用于字符拼接的 StringBuilderstr - 需要转义的字符串escapeChar - 转义字符escapedChars - 需要被转义的字符的数组public static String escape(String str, char escapeChar, char[] escapedChars)
str - 需要转义的字符串escapeChar - 转义字符escapedChars - 需要被转义的字符的数组public static StringBuilder unescape(@Nullable StringBuilder sb, String escapedStr, char escapeChar, char[] escapedChars)
escape(StringBuilder, String, char, char[]) 方法转义后的字符串的转义escapedStr - 被转义后的字符串escapeChar - 转义字符escapedChars - 已经被转义过的字符的数组public static String unescape(String escapedStr, char escapeChar, char[] escapedChars)
escape(StringBuilder, String, char, char[]) 方法转义后的字符串的转义escapedStr - 被转义后的字符串escapeChar - 转义字符escapedChars - 已经被转义过的字符的数组@Nullable public static StringBuilder escapeSQLLike(@Nullable StringBuilder sb, String likeStr, char escapeChar, boolean appendWildcardAtStart, boolean appendWildcardAtEnd)
sb - 用于拼接字符的 StringBuilder,如果为 null,则内部会在需要时自动创建likeStr - 指定的字符串escapeChar - 转义字符appendWildcardAtStart - 是否需要在字符串开头添加通配符'%'appendWildcardAtEnd - 是否需要在字符串末尾添加通配符'%'sb 为 null,且 likeStr 为空时,返回 nullpublic static String escapeSQLLike(String likeStr, char escapeChar, boolean appendWildcardAtStart, boolean appendWildcardAtEnd)
likeStr - 指定的字符串escapeChar - 转义字符appendWildcardAtStart - 是否需要在字符串开头添加通配符'%'appendWildcardAtEnd - 是否需要在字符串末尾添加通配符'%'public static String escapeSQLLike(String likeStr, boolean appendWildcardAtStart, boolean appendWildcardAtEnd)
likeStr - 指定的字符串appendWildcardAtStart - 是否需要在字符串开头添加通配符'%'appendWildcardAtEnd - 是否需要在字符串末尾添加通配符'%'public static String escapeSQLLike(String likeStr, char escapeChar, boolean appendWildcardAtBoth)
likeStr - 指定的字符串escapeChar - 转义字符appendWildcardAtBoth - 是否需要在字符串两侧都添加通配符'%'public static String escapeSQLLike(String likeStr, boolean appendLikeWildcard)
likeStr - 指定的字符串appendLikeWildcard - 是否需要在字符串两侧添加通配符'%'public static String escapeSQLLike(String likeStr)
likeStr - 指定的字符串public static boolean containsWord(String container, String search, String seperatorChars, boolean fastMode)
container - 待检测的字符串search - 指定的单词seperatorChars - 单词两侧必须是指定的字符之一或位于字符串 container 的首/尾位置fastMode - 是否启用快速模式。快速模式:如果在 container 中第一次检索到该单词,就直接在此处进行周边字符的匹配测试,并返回测试结果。 containsWord(String, String, String) 方法上的注释public static boolean containsWord(String container, String searchedWord, String seperatorChars)
containsWord("abc123,123", "123", ",") 等特殊情况无法保证100%可靠;如果想要保证可靠性,建议使用 containsWord(String, String, String, boolean)container - 待检测的字符串searchedWord - 指定的单词seperatorChars - 单词两侧必须是指定的字符之一或位于字符串 container 的首/尾位置containsWord(String, String, String, boolean)public static String replaceChar(String str, int charIndex, CharConverter converter) throws IndexOutOfBoundsException
IndexOutOfBoundsException - 索引越界时会抛出该异常。不过请注意:如果 str 为 null 时,将直接返回 null,而不会抛出 NPEpublic static <T> List<T> split(String str, String sep, Function<? super String,T> mapper, boolean ignoreNull)
mapper 进行转换,并返回转换后的元素集合str - 需要被拆分的字符串sep - 分隔符mapper - 转换器ignoreNull - 是否忽略 null 值(如果为 true,则返回的集合中不会包含 null )Copyright © 2021. All rights reserved.