你是否曾经为处理字符串而感到头疼?
无论是判断字符串是否为空、转换为数字、去除空格,还是进行拼接、替换或截取操作,这些常见的字符串处理需求经常让人感到烦恼。
今天给大家带来一个Java工具类库 – Hutool,它封装了很多常用的功能,包括字符串、日期、加密、IO、网络等方面的操作,使用简单,代码量少,功能强大。
安装方式:
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.18</version>
</dependency>
现在,让我们一起来看看如何使用Hutool的StrUtil来解决一些常见的字符串操作吧!
1. 字符串操作:可以快速进行字符串的判断、转换、拼接、替换、截取等操作。
// 判断字符串是否为空
StrUtil.isBlank(""); // true
// 字符串转数字
NumberUtil.parseInt("123"); // 123
// 去除字符串空格
StrUtil.trim(" abc "); // "abc"
// 字符串拼接
StrUtil.join(",", "a", "b", "c"); // "a,b,c"
// 字符串替换
StrUtil.replace("hello, world", "world", "Hutool"); // "hello, Hutool"
// 字符串截取
StrUtil.sub("hello, world", 0, 5); // "hello"
2. 日期时间操作:可以方便地进行日期时间的转换、格式化、计算、比较等操作。
// 获取当前日期时间
DateUtil.date(); // 2021-09-15 16:36:31
// 日期时间格式化
DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss"); // "2021-09-15 16:36:31"
// 日期时间计算
DateUtil.offset(new Date(), DateField.MONTH, 1); // 2021-10-15 16:36:31
// 日期时间转换
DateUtil.parse("2021-09-15", "yyyy-MM-dd"); // 2021-09-15 00:00:00
// 日期时间比较
DateUtil.compare(new Date(), DateUtil.parse("2022-01-01", "yyyy-MM-dd")); // -1
3. 加密解密操作:可以进行MD5、SHA、AES、DES等加密解密操作,保护数据的安全性。
//5加密
SecureUtil.md5("hello"): // 5d41402abc4b2a76b9719d911017c592
// SHA1加密
SecureUtil.sha1("hello"): // aaf4c61ddcc5e8a2dabede0f3b482ed9aea9434d
AES加密解密
String key ="1234567890abedef"
String str = "hello"
String encryptStr = AesUtil.encrypt(str, key): // 26d4a4a3b6d771c33b9a4d66f93c2ec
String decryptStr = AesUtil.decrypt(encryptStr, key); // hello
// DES加密解密
String key = "12345678"
String str = "hello"
String encryptStr = DesUtil.encrypt(str, key); // GtIvzFpQ2tI=
String decryptStr = DesUtil.decrypt(encryptStr, key): // hello
`4. 文件IO操作:可以进行文件的读取、写入、复制、移动、删除等操作。
// 文件读取
String str = FileUtil.readUtf8String(new File("test.txt")); // "hello, world"
// 文件写入
FileUtil.writeUtf8String("hello, world", new File("test.txt"));
// 文件复制
FileUtil.copy(new File("src.txt"), new File("dest.txt"), true);
// 文件移动
FileUtil.move(new File("src.txt"), new File("dest.txt"), true);
// 文件删除
FileUtil.del(new File("test.txt"));
5. 网络操作:可以进行HTTP请求、FTP文件上传下载、邮件发送等网络相关操作。
// 发送HTTP GET请求
String result = HttpUtil.get("http://www.baidu.com");
// 发送HTTP POST请求
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("username", "admin");
paramMap.put("password", "123456");
String result = HttpUtil.post("http://www.example.com/login", paramMap);
// 上传文件到FTP服务器
String host = "ftp.example.com";
int port = 21;
String username = "username";
String password = "password";
String path = "/upload";
String fileName = "test.txt";
File file = new File("test.txt");
FtpUtil.upload(host, port, username, password, path, fileName, file);
// 发送邮件
String to = "example@example.com";
String subject = "测试邮件";
String content = "这是一封测试邮件";
MailUtil.send(to, subject, content, false);
6. Bean操作:可以快速对JavaBean进行赋值、拷贝、转换等操作。
// 对象属性拷贝
User user1 = new User("Tom", 18);
User user2 = new User();
BeanUtil.copyProperties(user1, user2);
// 获取对象的属性值
User user = new User("Tom", 18);
String name = BeanUtil.getProperty(user, "name"); // "Tom"
// 设置对象的属性值
User user = new User();
BeanUtil.setProperty(user, "name", "Tom");
// 对象序列化
User user = new User("Tom", 18);
byte[] bytes = SerializeUtil.serialize(user);
// 对象反序列化
User user = SerializeUtil.deserialize(bytes);
7. 集合操作:可以进行集合的排序、过滤、查找、转换等操作。
// 集合排序
List<Integer> list = Arrays.asList(3, 1, 5, 2, 4);
CollUtil.sort(list); // [1, 2, 3, 4, 5]
// 集合过滤
List<Integer> list = Arrays.asList(3, 1, 5, 2, 4);
List<Integer> filteredList = CollUtil.filter(list, (Filter<Integer>) i -> i % 2 == 0); // [2, 4]
// 集合查找
List<Integer> list = Arrays.asList(3, 1, 5, 2, 4);
int index = CollUtil.indexOf(list, 5); // 2
// 集合转换
List<Integer> list = Arrays.asList(1, 2, 3);
String str = CollUtil.join(list, ","); // "1,2,3"
8. 其他常用操作:包括随机数生成、身份证号码验证、二维码生成等等。
// 生成随机数
int random = RandomUtil.randomInt(1, 10);
// 验证身份证号码
boolean isValid = IdcardUtil.isValidCard("11010119900307607X");
// 生成二维码
QrCodeUtil.generate("http://www.example.com", 300, 300, new File("qrcode.png"));
以上是Hutool常用的一些用法案例及案例效果,Hutool提供的功能非常丰富,可以帮助Java开发者快速开发高质量的应用程序。
总结
——————————————————————————————————————————————————————————————————————————
无论是日常开发还是处理复杂的字符串操作,Hutool的StrUtil工具类都是你的得力助手。
它提供了一系列强大而简洁的方法,让字符串处理变得轻松有趣。
如果你想要深入了解Hutool,并掌握更多实用的功能和技巧,可以访问官网。
官网:https://www.hutool.cn/