Hutool,一个丰富的Java工具类库

Hutool,一个丰富的Java工具类库《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。

大家好,欢迎来到IT知识分享网。

《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是一个小而全的Java工具类库-Hutool。

Hutool,一个丰富的Java工具类库

Hutool通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言的表达能力,用起来更加方便。

Hutool中的工具方法来自每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当。

Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。

Hutool,一个丰富的Java工具类库

包含组件

一个Java基础工具类,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类,同时提供以下组件:

模块

介绍

hutool-aop

JDK动态代理封装,提供非IOC下的切面支持

hutool-bloomFilter

布隆过滤,提供一些Hash算法的布隆过滤

hutool-cache

简单缓存实现

hutool-core

核心,包括Bean操作、日期、各种Util等

hutool-cron

定时任务模块,提供类Crontab表达式的定时任务

hutool-crypto

加密解密模块,提供对称、非对称和摘要算法封装

hutool-db

JDBC封装后的数据操作,基于ActiveRecord思想

hutool-dfa

基于DFA模型的多关键字查找

hutool-extra

扩展模块,对第三方封装(模板引擎、邮件、Servlet、二维码、Emoji、FTP、分词等)

hutool-http

基于HttpUrlConnection的Http客户端封装

hutool-log

自动识别日志实现的日志门面

hutool-script

脚本执行封装,例如Javascript

hutool-setting

功能更强大的Setting配置文件和Properties封装

hutool-system

系统参数调用封装(JVM信息等)

hutool-json

JSON实现

hutool-captcha

图片验证码实现

hutool-poi

针对POI中Excel和Word的封装

hutool-socket

基于Java的NIO和AIO的Socket封装

hutool-jwt

JSON Web Token (JWT)封装实现

安装使用

Maven

<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.7.15</version> </dependency>

Gradle

implementation 'cn.hutool:hutool-all:5.7.15'

Maven地址:https://repo1.maven.org/maven2/cn/hutool/hutool-all/5.7.15/

举例Codec编码

1.Base62编码解码-Base62

介绍:

Base62编码是由10个数字、26个大写英文字母和26个小写英文字母组成,多用于安全领域和短URL生成。

使用:

String a = "一个非常长的字符串66"; // 17vKU8W4JMG8dQF8lk9VNnkdMOeWn4rJMva6F0XsLrrT53iKBnqo String encode = Base62.encode(a); // 还原为a String decodeStr = Base62.decodeStr(encode);

2.Base64编码解码-Base64

介绍:

Base64编码是用64(2的6次方)个ASCII字符来表示256(2的8次方)个ASCII字符,也就是三位二进制数组经过编码后变为四位的ASCII字符显示,长度比原来增加1/3。

使用:

String a = "一个非常长的字符串"; //5Lym5a625piv5LiA5Liq6Z2e5bi46ZW/55qE5a2X56ym5Liy String encode = Base64.encode(a); // 还原为a String decodeStr = Base64.decodeStr(encode);

3.莫尔斯电码-Morse

介绍:

摩尔斯电码也被称作摩斯密码,是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母、数字和标点符号。

摩尔斯电码是由点dot(.)划dash(-)这两种符号所组成的。

使用:

//编码: final Morse morseCoder = new Morse(); String text = "Hello World!"; // ...././.-../.-../---/-...../.--/---/.-./.-../-../-.-.--/ morseCoder.encode(text);
//解码: String text = "你好,世界!"; // -..----.--...../-.--..-.-----.-/--------....--../-..---....-.--./---.-.-.-..--../--------.......-/ String morse = morseCoder.encode(text); morseCoder.decode(morse);

4.BCD码-BCD

介绍:

BCD码(Binary-Coded Decimal‎)亦称二进码十进数或二-十进制代码。

BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷地进行。

使用:

String strForTest = "ABCDEF"; // 转BCD byte[] bcd = BCD.strToBcd(strForTest); // 解码BCD String str = BCD.bcdToStr(bcd);

5.回转N位密码-Rot

介绍:

RotN(rotate by N places),回转N位密码,是一种简易的替换式密码,也是过去在古罗马开发的凯撒加密的一种变体。

使用:

String str = "1f2e9df6131b480b9fdddc633cf24996"; // 4s5r2qs9464o713o2sqp966ps57229 String encode13 = Rot.encode13(str); // 解码 String decode13 = Rot.decode13(encode13);

6.Punycode实现-PunyCode.md

介绍:

Punycode是一个根据RFC 3492标准而制定的编码系统,主要用于把域名从地方语言所采用的Unicode编码转换成为可用于DNS系统的编码。

使用:

String text = "Hutool编码器"; // Hutool-ux9js33tgln String strPunyCode = PunyCode.encode(text); // Hutool编码器 String decode = PunyCode.decode("Hutool-ux9js33tgln"); // Hutool编码器 decode = PunyCode.decode("xn--Hutool-ux9js33tgln");

更多使用文档:https://apidoc.gitee.com/dromara/hutool/

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/46777.html

(0)
上一篇 2024-10-03 06:39
下一篇 2024-10-03 21:45

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信