全网最全:Java字符串处理
全网最全:Java字符串处理
Java字符串处理,包含了多个静态方法,用于执行不同类型的字符串操作。
开箱即用
空白和空字符串检查:
字符串处理:
字符串创建:
字符串填充:
字符串转换:
字符串相似度:
UUID生成:
文本格式化:
字符串截断:
具体代码:(代码参考字符串处理类)
// ------------------------------------------------------------------------ Blank
/**
* 如果对象是字符串是否为空白,空白的定义如下:
*
* - {@code null}
* - 空字符串:{@code ""}
* - 空格、全角空格、制表符、换行符,等不可见字符
*
*
* 例:
*
* - {@code StrUtil.isBlankIfStr(null) // true}
* - {@code StrUtil.isBlankIfStr("") // true}
* - {@code StrUtil.isBlankIfStr(" tn") // true}
* - {@code StrUtil.isBlankIfStr("abc") // false}
*
*
* 注意:该方法与 {@link #isEmptyIfStr(Object)} 的区别是:
* 该方法会校验空白字符,且性能相对于 {@link #isEmptyIfStr(Object)} 略慢。
*
* @param obj 对象
* @return 如果为字符串是否为空串
* @see StrUtil#isBlank(CharSequence)
* @since 3.3.0
*/
public static boolean isBlankIfStr(Object obj) {
if (null == obj) {
return true;
} else if (obj instanceof CharSequence) {
return isBlank((CharSequence) obj);
}
return false;
}
// ------------------------------------------------------------------------ Empty
/**
* 如果对象是字符串是否为空串,空的定义如下:
*
* - {@code null}
* - 空字符串:{@code ""}
*
*
* 例:
*
* - {@code StrUtil.isEmptyIfStr(null) // true}
* - {@code StrUtil.isEmptyIfStr("") // true}
* - {@code StrUtil.isEmptyIfStr(" tn") // false}
* - {@code StrUtil.isEmptyIfStr("abc") // false}
*
*
* 注意:该方法与 {@link #isBlankIfStr(Object)} 的区别是:该方法不校验空白字符。
*
* @param obj 对象
* @return 如果为字符串是否为空串
* @since 3.3.0
*/
public static boolean isEmptyIfStr(Object obj) {
if (null == obj) {
return true;
} else if (obj instanceof CharSequence) {
return 0 == ((CharSequence) obj).length();
}
return false;
}
// ------------------------------------------------------------------------ Trim
/**
* 给定字符串数组全部做去首尾空格
*
* @param strs 字符串数组
*/
public static void trim(String[] strs) {
if (null == strs) {
return;
}
String str;
for (int i = 0; i < strs.length; i++) {
str = strs[i];
if (null != str) {
strs[i] = trim(str);
}
}
}
/**
* 将对象转为字符串
*
*
* 1、Byte数组和ByteBuffer会被转换为对应字符串的数组
* 2、对象数组会调用Arrays.toString方法
*

* * @param obj 对象 * @ 字符串 */ ( obj) { str(obj, .);}/** * 将对象转为字符串 * *
* 1、Byte数组和ByteBuffer会被转换为对应字符串的数组
* 2、对象数组会调用Arrays.toString方法
*
* * @param obj对象 * @param 字符集 * @ 字符串 * @ 请使用 {@link #str(, )} */@ str( obj, ) { str(obj, .());}/** * 将对象转为字符串 *
* 1、Byte数组和ByteBuffer会被转换为对应字符串的数组
* 2、对象数组会调用Arrays.toString方法
*
* * @param obj对象 * @param 字符集 * @ 字符串 */ str( obj, ) {if (null == obj) { null;}if (obj ) { () obj;} else if (obj byte
) { str((byte
) obj, );} else if (obj Byte
) { str((Byte
) obj, );} else if (obj ) { str(() obj, );} else if (.(obj)) { .(obj);} obj.();}/** * 将byte数组转为字符串 * * @param bytes byte数组 * @param 字符集 * @ 字符串 */ str(byte
bytes, ) { str(bytes, .());}/** * 解码字节码 * * @param data 字符串 * @param 字符集全网最全:Java字符串处理,如果此字段为空java随机生成字符串,则解码的结果取决于平台 * @ 解码后的字符串 */ str(byte
data, ) {if (data == null) { null;}if (null == ) { new (data);} new (data, );}/** * 将Byte数组转为字符串 * * @param bytes byte数组 * @param 字符集 * @ 字符串 */ str(Byte
bytes, ) { str(bytes, .());}/** * 解码字节码 * * @param data 字符串 * @param 字符集,如果此字段为空,则解码的结果取决于平台 * @ 解码后的字符串 */ str(Byte

data, ) {if (data == null) { null;}byte
bytes = new byte
data.
;Byte ;for (int i = 0; i < data.; i++) { = data
;bytes
= (null == ) ? -1 : ;} str(bytes, );}/** * 将编码的数据转换为字符串 * * @param data 数据 * @param 字符集,如果为空使用当前系统字符集 * @ 字符串 */ str( data, ) {if (data == null) { null;} str(data, .());}/** * 将编码的数据转换为字符串 * * @param data 数据 * @param 字符集java随机生成字符串,如果为空使用当前系统字符集 * @ 字符串 */ str( data, ) {if (null == ) { = .();} .(data).();}/** * 调用对象的方法,null会返回“null” * * @param obj 对象 * @ 字符串 * @see #() * @since 4.1.3 */ ( obj) { .(obj);}/** * 调用对象的方法,null会返回{@code null} * * @param obj 对象 * @ 字符串 or {@code null} * @since 5.7.17 */ ( obj) { null == obj ? null : obj.();}/** * 创建对象 * * @ 对象 */ () { new ();}/** * 创建对象 * * @ 对象 * @since 4.0.1 */ () { .();}/** * 创建对象 * * @param 初始大小 * @ 对象 */ (int ) { new ();}/** * 创建对象 * * @param 初始大小 * @ 对象 * @since 4.0.1 */ (int ) { .();}/** * 获得 * * @param str 字符串 * @ */ ( str) {if (null == str) { null;} new (str.());}/** * 获得 * * @ */ () { new ();}/** * 反转字符串
* 例如:abcd =》dcba * * @param str 被反转的字符串 * @ 反转后的字符串 * @since 3.0.9 */ ( str) { new (.(str.()));}// ------------------------------------------------------------------------ fill/** * 将已有字符串填充为规定长度,如果已有字符串超过这个长度则返回这个字符串
* 字符填充于字符串前 * * @param str被填充的字符串 * @param 填充的字符 * @param len填充长度 * @ 填充后的字符串 * @since 3.1.2 */ ( str, char , int len) { fill(str, , len, true);}/** * 将已有字符串填充为规定长度,如果已有字符串超过这个长度则返回这个字符串
* 字符填充于字符串后 * * @param str被填充的字符串 * @param 填充的字符 * @param len填充长度 * @ 填充后的字符串 * @since 3.1.2 */ ( str, char , int len) { fill(str, , len, false);}/** * 将已有字符串填充为规定长度,如果已有字符串超过这个长度则返回这个字符串 * * @param str被填充的字符串 * @param 填充的字符 * @param len填充长度 * @param isPre是否填充在前 * @ 填充后的字符串 * @since 3.1.2 */ fill( str, char , int len, isPre) {final int = str.();if ( > len) { str;} = .(, len - ); isPre ? .(str) : str.();}/** * 计算两个字符串的相似度 * * @param str1 字符串1 * @param str2 字符串2 * @ 相似度 * @since 3.2.3 */ ( str1, str2) { .(str1, str2);}/** * 计算两个字符串的相似度百分比 * * @param str1 字符串1 * @param str2 字符串2 * @param scale 相似度 * @ 相似度百分比 * @since 3.2.3 */ ( str1, str2, int scale) { .(str1, str2, scale);}/** * 生成随机UUID * * @ UUID字符串 * @see #() * @since 4.0.10 */ uuid() { .();}/** * 格式化文本,使用 {} 占位
* map = {a: "", b: ""} ("{a} and {b}", map) ---=》 and * * @param 文本模板,被替换的部分用 {key} 表示 * @param map参数值对 * @ 格式化后的文本 */ ( , Map map) { (, map, true);}/** * 格式化文本,使用 {} 占位
* map = {a: "", b: ""} ("{a} and {b}", map) ---=》 and * * @param 文本模板,被替换的部分用 {key} 表示 * @param map参数值对 * @param 是否忽略 {@code null} 值java随机生成字符串,忽略则 {@code null} 值对应的变量不被替换,否则替换为"" * @ 格式化后的文本 * @since 5.4.3 */ ( , Map map, ) { .(, map, );}/** * 截断字符串,使用其按照UTF-8编码为字节后不超过长度。截断后自动追加省略号(...) * 用于存储数据库且编码为UTF-8的字段 * * @param 字符串 * @param 最大字节长度 * @ 截断后的字符 */ ( str, int ) { = .UTF_8;//UTF-8编码单个字符最大长度 (str, , , 4, true);}/** * 截断字符串,使用其按照指定编码为字节后不超过长度
* 此方法用于截取总bytes数不超过指定长度,如果字符出没有超出原样输出,如果超出了,则截取掉超出部分,并可选添加...,* 但是添加“...”后总长度也不超过限制长度。 * * @param str原始字符串 * @param 指定编码 * @param 最大字节数 * @param 速算因子全网最全:Java字符串处理,取该编码下单个字符的最大可能字节数 * @param 截断后是否追加省略号(...) * @ 截断后的字符串 */ ( str, , int , int , ) {//字符数*速算因子
1. 本站所有资源来源于用户上传和网络,如有侵权请联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长处理!
6. 本站不售卖代码,资源标价只是站长收集整理的辛苦费!如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
7. 站长QQ号码 2205675299
资源库 - 资源分享下载网 » 全网最全:Java字符串处理
常见问题FAQ
- 关于资源售价和售后服务的说明?
- 代码有没有售后服务和技术支持?
- 有没有搭建服务?
- 链接地址失效了怎么办?
- 关于解压密码



