激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Hutool,一個超好用的 Java 工具類庫

Hutool,一個超好用的 Java 工具類庫

2023-09-16 02:17未知服務器之家 Java教程

一、簡介 Hutool是一個小而全的Java工具類庫,通過靜態方法封裝,降低相關API的學習成本,提高工作效率,使Java擁有函數式語言般的優雅,讓Java語言也可以“甜甜的”。 Hutool的目標是使用一個工具方法代替一段復雜代碼,從而最

一、簡介

Hutool是一個小而全的Java工具類庫,通過靜態方法封裝,降低相關API的學習成本,提高工作效率,使Java擁有函數式語言般的優雅,讓Java語言也可以“甜甜的”。

Hutool的目標是使用一個工具方法代替一段復雜代碼,從而最大限度的避免“復制粘貼”代碼的問題,徹底改變我們寫代碼的方式。

以計算MD5為例:

-【以前】打開搜索引擎 -> 搜“Java MD5加密” -> 打開某篇博客-> 復制粘貼 -> 改改好用

-【現在】引入Hutool -> SecureUtil.md5()

Hutool的存在就是為了減少代碼搜索成本,避免網絡上參差不齊的代碼出現導致的bug。


二、包含組件

一個Java基礎工具類,對文件、流、加密解密、轉碼、正則、線程、XML等JDK方法進行封裝,組成各種Util工具類,同時提供以下組件:

Hutool,一個超好用的 Java 工具類庫

你可以通過引入hutool-all方式引入所有模塊,但還是不建議引入所有模塊,因為絕大部分功能項目可能都用不上,建議只引入你需要的模塊。

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

另外個人覺得Hutool雖然工具很全,但是有些事情還是交給專業的框架來做,比如http請求,就建議用okhttp或者httpclient,導入導出用easyexcel。

下面介紹一些常用的工具類


三、常用功能演示

Hutool 提供的功能實在太多,這里只列舉一些我個人覺得比較實用的功能,供大家學習參考。

1、類型轉換工具Convert類

只要你需要用到類型轉換的,你都先別急著自己造輪子,可以先來這里找找。

   public static void main(String[] args) {
        //1、Object 轉 數字
        Object s = "123";
        Integer bInt = Convert.toInt(s);
        //如果給定的值為空,或者轉換失敗,返回默認值
        Integer baInt = Convert.toInt("123a", 0);
        //2、數字轉字符串
        String aStr = Convert.toStr(1);
        //3、轉 BigDecimal
        BigDecimal sbDecimal = Convert.toBigDecimal("123");
        //4、金額轉為中文形式
        String chinese = Convert.digitToChinese(12);
    }

還有很多很多,只要你想到的這里基本上都有。

2、時間工具DateUtil

  public static void main(String[] args) {
        //1、當前時間
        Date date = DateUtil.date();
        Date date2 = DateUtil.date(System.currentTimeMillis());
        //2、當前時間字符串,格式:yyyy-MM-dd HH:mm:ss
        String now = DateUtil.now();
         //當前日期字符串,格式:yyyy-MM-dd
        String today = DateUtil.today();
        //3、獲得月份,從0開始計數
        int month = DateUtil.month(new Date());
        //4、格式化后的字符串 默認yyyy-MM-dd HH:mm:ss
        String dateTime = DateUtil.formatLocalDateTime(LocalDateTime.now());
        //格式化后的字符串 指定格式類型。所以類型在DatePattern工具類也可以找 不用在手寫
        String format = DateUtil.format(new Date(), DatePattern.CHINESE_DATE_PATTERN);
        //5、獲取某月的開始時間
        DateTime dateTime1 = DateUtil.beginOfMonth(new Date());
        //獲取昨天時間
        DateTime yesterday = DateUtil.yesterday();
        //6、計時,常用于記錄某段代碼的執行時間,單位:毫秒
        long spendMs = DateUtil.spendMs(111111111L);
    }

3、數字類工具NumberUtil

這個數字工具在實際開發中還是蠻有用的,一般我們進行數字加減的時候,很容易因為數據為null,而報空指針異常。

這個工具類很好的幫我們避免這類問題的發生。

如下示例:

  public static void main(String[] args) {
        //1、數字相加 如果為空默認加0
        BigDecimal decimal = BigDecimal.valueOf(10);
        //返回10
        BigDecimal add = NumberUtil.add(decimal, null);
    }

看下這個工具類的常用方法

    //1、相加,9 + null = 9
    BigDecimal add(BigDecimal... values);
    BigDecimal add(String... values);
    
    //2、相減
    BigDecimal sub(BigDecimal... values);
    BigDecimal sub(String... values);
    
    //3、相乘
    BigDecimal mul(BigDecimal... values);
    BigDecimal mul(String... values);

    //4、相除,當發生除不盡的情況時,由scale指定精確度,后面的四舍五入
    BigDecimal div(Number v1, Number v2, int scale);
    BigDecimal div(String v1, String v2, int scale);
    
    //5、保留固定位數小數
    BigDecimal round(BigDecimal number, int scale);
    String roundStr(String numberStr, int scale);

    //6、格式化百分比: 0.23 -> 23%
    String formatPercent(double number, int scale);
    
    //7、字符串是否為數字
    boolean isNumber(CharSequence str);

    //8、判斷String是否是整數
    boolean isInteger(String s);

    //9、生成不重復隨機數 根據給定的最小數字和最大數字,以及隨機數的個數
    int[] generateRandomNumber(int begin, int end, int size);

    //10、比較大小,參數1 > 參數2 返回true
    boolean isGreater(BigDecimal bigNum1, BigDecimal bigNum2);

    //11、取最大值
    BigDecimal max(BigDecimal... numberArray);

    //12、字符串轉數字
    BigDecimal toBigDecimal(String numberStr);

    //13、空轉0
    BigDecimal null2Zero(BigDecimal decimal);

4、身份認證工具IdcardUtil

public static void main(String[] args) {
        String ID_18 = "119127189008245110";
        //是否有效
        boolean valid = IdcardUtil.isValidCard(ID_18);
        //年齡
        int age = IdcardUtil.getAgeByIdCard(ID_18);
        //生日
        String birth = IdcardUtil.getBirthByIdCard(ID_18);
        //省份
        String province = IdcardUtil.getProvinceByIdCard(ID_18);
    }

5、信息脫敏工具DesensitizedUtil

public static void main(String[] args) {
    //【中文姓名】只顯示第一個漢字,其他隱藏為2個星號,比如:李**
    DesensitizedUtil.chineseName("張三");
    //【身份證號】前1位 和后2位
    DesensitizedUtil.idCardNum("33012345",1,2);
    //【手機號碼】前三位,后4位,其他隱藏,比如135****2210
    DesensitizedUtil.mobilePhone("13712345678");
    //【地址】只顯示到地區,不顯示詳細地址,比如:北京市海淀區****
    DesensitizedUtil.address("北京市海淀區被順街道",4);
    //還有 郵箱、車牌、郵箱、銀行卡、密碼......
}

6、字段校驗工具Validator

  public static void main(String[] args) {
        //1、判斷字符串是否全部為字母組成,包括大寫和小寫字母和漢字
        Validator.isLetter("小小寶貝");
        //2、驗證該字符串是否是數字
        Validator.isNumber("123");
        //3、驗證是否為可用郵箱地址
        Validator.isEmail("[email protected]");
        //4、驗證是否為手機號碼(中國)
        Validator.isMobile("15612345678");
        //5、驗證是否為身份證號碼(支持18位、15位和港澳臺的10位)
        Validator.isCitizenId("330127210006111234");
        //6、驗證是否為中國車牌號
        Validator.isPlateNumber("小A.88888");
        //7、驗證是否都為漢字
        Validator.isChinese("小A");
        //8、檢查給定的數字是否在指定范圍內
        Validator.isBetween(3,2,1);
    }

7、集合工具類CollStreamUtil

用java8的Stream流能夠非常簡化我們的代碼,這個工具類相當于對java8的Stream的寫法進一步簡寫。

   public static void main(String[] args) {
        List<Student> list = new ArrayList<>();
        list.add(new Student(1, 1, 1, "張三"));
        list.add(new Student(1, 1, 2, "李四"));
        list.add(new Student(1, 1, 3, "王五"));
        //1、學生id -> 學生對象
        Map<Long, Student> map = CollStreamUtil.toIdentityMap(list, Student::getStudentId);
        //2、學生id -> 學生名稱
        Map<Long, String> map1 = CollStreamUtil.toMap(list, Student::getStudentId, Student::getName);
        //3、學生id -> 學生集合
        Map<Long, List<Student>> map2 = CollStreamUtil.groupByKey(list, Student::getClassId);
        //4、獲取用戶名集合
        List<String> list1 = CollStreamUtil.toList(null, Student::getName);
    }

當然上面只是展示了一小部分工具,具體的可以看官方文檔,寫的清清楚楚,明明白白哇

官方文檔: https://www.hutool.cn/docs/#/



聲明: 公眾號如需轉載該篇文章,發表文章的頭部一定要 告知是轉至公眾號: 后端元宇宙。同時也可以問本人要markdown原稿和原圖片。其它情況一律禁止轉載!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲国产精品高潮呻吟久久 | 国产精品一区在线免费观看 | 美女亚洲| 一区二区三区播放 | 91视频站 | 91网站在线观看视频 | 欧洲黄视频 | 天天操天天做 | 国产精品免费观看视频 | 成人店女老板视频在线看 | 日韩视频中文 | 欧美a级在线免费观看 | 精品久久久久久国产三级 | 久久久久久久久久网 | 天天都色视频 | 成人偷拍片视频在线观看 | 成人精品久久 | 欧美一级特黄a | 在线视频观看一区二区 | 91午夜视频 | 石原莉奈日韩一区二区三区 | 日韩av片在线免费观看 | wwwxxx国产| 欧美 日韩 国产 成人 | xx53xx| 婷婷中文字幕一区二区三区 | 日韩黄色免费观看 | 免费在线观看成人av | a视频在线播放 | 国产亚洲精久久久久久蜜臀 | 伦一区二区三区中文字幕v亚洲 | 成人青青草 | 青青草免费观看完整版高清 | 亚卅毛片 | 欧美亚洲黄色 | 久久蜜桃精品一区二区三区综合网 | 中国毛片在线观看 | 91精品国产成人 | www久| 黄色高清免费网站 | 久久精品成人影院 |