一、依赖:
<!--Hutool Java工具包-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.4.5</version>
</dependency>
二、常用方法:
方法名 | 参数 | 返回值 | 作用 | 备注 |
---|---|---|---|---|
isEmptyIfStr(Object obj) | obj: 对象 | boolean | 如果对象是字符串是否为空串,空的定义如下: null 空字符串:"" |
该方法与isBlankIfStr(Object)的区别是: 该方法不校验空白字符。 |
isBlankIfStr(Object obj) | obj: 对象 | boolean | 如果对象是字符串是否为空白,空白的定义如下: null 空字符串:"" 空格、全角空格、制表符、换行符,等不可见字符 |
该方法与 isEmptyIfStr(Object) 的区别是: 该方法会校验空白字符,且性能相对于 isEmptyIfStr(Object) 略慢。 |
trim(String[] strs) | strs:字符串数组 |
void | 给定字符串数组全部做去首尾空格 | |
utf8Str(Object obj) | obj: 对象 | String | 将对象转为字符串 1、Byte数组和ByteBuffer会被转换为对应字符串的数组 2、对象数组会调用Arrays.toString方法 | |
str(Object obj, String charsetName) | obj: 对象 charsetName: 字符集 | String |
将对象转为字符串 | 已过时。 请使用 str(Object, Charset) |
str(Object obj, Charset charset) | obj:对象 charset:字符集 | String |
将对象转为字符串 1、Byte数组和ByteBuffer会被转换为对应字符串的数组 2、对象数组会调用Arrays.toString方法 | |
str(byte[] bytes,String charset) | bytes:byte数组 charset:字符集 | String |
将byte数组转为字符串 | |
str(byte[] data, Charset charset) | bytes:byte数组 charset:字符集,如果此字段为空,则解码的结果取决于平台 | String | 解码字节码 | |
str(ByteBuffer data, String charset) | data:数据 charset:字符集,如果为空使用当前系统字符集 | String | 将编码的byteBuffer数据转换为字符串 | |
str(ByteBuffer data, Charset charset) | data:数据 charset:字符集,如果为空使用当前系统字符集 | String | 将编码的byteBuffer数据转换为字符串 | |
toString(Object obj) | obj: 对象 | String | 调用对象的toString方法,null会返回“null” | |
toStringOrNull(Object obj) | obj: 对象 | String | 调用对象的toString方法,null会返回null | |
builder() | StringBuilder | 创建StringBuilder对象 | ||
builder(int capacity) | capacity: 初始大小 | StringBuilder | 创建StringBuilder对象 | |
strBuilder() | StrBuilder | 创建StrBuilder对象 | ||
strBuilder(int capacity) | capacity: 初始大小 | StrBuilder | StrBuilder对象 | |
getReader(CharSequence str) | str:字符串编码格式 | StringReader | 获得StringReader | |
getWriter() | StringWriter | 获得StringWriter | ||
reverse(String str) | str:被反转的字符串 | String | 反转字符串 例如:abcd =》dcba | |
fillBefore(String str, char filledChar, int len) | str:被填充的字符串 filledChar:填充的字符 len:填充长度 | String | 将已有字符串填充为规定长度,如果已有字符串超过这个长度则返回这个字符串。 字符填充于字符串前 | |
fillAfter(String str, char filledChar, int len) | str:被填充的字符串 filledChar:填充的字符 len:填充长度 | String | 将已有字符串填充为规定长度,如果已有字符串超过这个长度则返回这个字符串。 字符填充于字符串后 | |
fill(String str, char filledChar, int len, boolean isPre) |
str:被填充的字符串
| String | 将已有字符串填充为规定长度,如果已有字符串超过这个长度则返回这个字符串 | |
similar(String str1, String str2) | str1: 字符串1 str2: 字符串2 |
double | 计算两个字符串的相似度 | |
similar(String str1, String str2, int scale) |
str1: 字符串1 scale:最多保留小数位数 | String | 计算两个字符串的相似度百分比 | |
uuid() | String | 生成随机UUID | ||
format(CharSequence template, Map<?,?> map) | template: 文本模板,被替换的部分用 {key} 表示 map: 参数值对 | String | 格式化文本,使用 {varName} 占位 map = {a: "aValue", b: "bValue"} format("{a} and {b}", map) ---=》 aValue and bValue | |
format(CharSequence template, Map<?,?> map, boolean ignoreNull) | template: 文本模板,被替换的部分用 {key} 表示 map: 参数值对 ignoreNull: 是否忽略 null 值,忽略则 null 值对应的变量不被替换,否则替换为"" | String | 格式化文本,使用 {varName} 占位 map = {a: "aValue", b: "bValue"} format("{a} and {b}", map) ---=》 aValue and bValue | |
truncateUtf8(String str, int maxBytes) | str: java字符串 maxBytes: 最大字节长度 | String | 截断字符串,使用其按照UTF-8编码为字节后不超过maxBytes长度。截断后自动追加省略号(...) 用于存储数据库varchar且编码为UTF-8的字段 | |
truncateByByteLength(String str, Charset charset, int maxBytes, int factor, boolean appendDots) | str: 原始字符串 charset: 指定编码 maxBytes: 最大字节数 factor: 速算因子,取该编码下单个字符的最大可能字节数 appendDots: 截断后是否追加省略号(...) | String | 截断字符串,使用其按照指定编码为字节后不超过maxBytes长度 此方法用于截取总bytes数不超过指定长度,如果字符出没有超出原样输出,如果超出了,则截取掉超出部分,并可选添加..., 但是添加“...”后总长度也不超过限制长度。 |
similar示例:
System.out.println(StrUtil.similar("11256x","9x",4));//16.6667%
fillBefore示例:
1 System.out.println(StrUtil.fillBefore("abcd",'-',6));//--abcd
System.out.println(StrUtil.fillBefore("abcd",'-',3));//abcd
isEmptyIfStr示例:
StrUtil.isEmptyIfStr(null) // true
StrUtil.isEmptyIfStr("") // true
StrUtil.isEmptyIfStr(" \t\n") // false
StrUtil.isEmptyIfStr("abc") // false
isBlankIfStr示例:
StrUtil.isBlankIfStr(null) // true
StrUtil.isBlankIfStr("") // true
StrUtil.isBlankIfStr(" \t\n") // true
StrUtil.isBlankIfStr("abc") // false