springboot整合Hutool实现Convert类型转换实用案例-值得收藏

青锋每日分享

每天分享技术实战干货,技术在于积累和收藏,我们不一定比别人厉害多少,但我们懂得收藏和积累。万一有一天用到了呢!

关注博主,每天带你学习一点点。

青锋开源产品地址:https://gitee.com/msxy

什么是Hutool

Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。

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

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

Convert介绍

Convert类可以说是一个工具方法类,里面封装了针对Java常见类型的转换,用于简化类型转换。Convert类中大部分方法为toXXX,参数为Object,可以实现将任意可能的类型转换为指定类型。同时支持第二个参数defaultValue用于在转换失败时返回一个默认值。

Java常见类型转换

1、转换为字符串:

 /**
     * 转换为字符串
     */
    @Test
    public void toStr() {
        int a = 1;
        //aStr为"1"
        String aStr = Convert.toStr(a);
        System.out.println(aStr);
        long[] b = {1,2,3,4,5};
        //bStr为:"[1, 2, 3, 4, 5]"
        String bStr = Convert.toStr(b);
        System.out.println(bStr);
    }

2、转换为指定类型数组

/**
     * 转换为指定类型数组
     */
    @Test
    public void toIntArray() {
        String[] b = { "1", "2", "3", "4" };
        //结果为Integer数组
        Integer[] intArray = Convert.toIntArray(b);
        System.out.println(intArray.length);
        long[] c = {1,2,3,4,5};
        //结果为Integer数组
        Integer[] intArray2 = Convert.toIntArray(c);
        System.out.println(intArray2.length);
    }

3、转换为日期对象

 /**
     * 转换为日期对象
     */
    @Test
    public void toDate() {
        String a = "2022-04-19";
        Date value = Convert.toDate(a);
        System.out.println(value);
    }

4、转换为集合

 /**
     * 转换为集合
     */
    @Test
    public void toList() {
        Object[] a = {"a", "你", "好", "", 1};
        List<?> list = Convert.convert(List.class, a);
        //从4.1.11开始可以这么用
        List<?> ls2 = Convert.toList(a);
        System.out.println(ls2);
    }

半角转全角

/**
     * 半角转全角
     */
    @Test
    public void toSBC() {
        String a = "123456789";

        //结果为:"123456789"
        String sbc = Convert.toSBC(a);
        System.out.println(sbc);
    }

全角转半角

 /**
     * 全角转半角
     */
    @Test
    public void toDBC() {
        String a = "123456789";

        //结果为"123456789"
        String dbc = Convert.toDBC(a);
        System.out.println(dbc);
    }

Unicode和字符串转换

@Test
  public void unicode() {
      String a = "我爱青锋";
      String unicode = Convert.strToUnicode(a);
      System.out.println(unicode);
      String raw = Convert.unicodeToStr(unicode);
      System.out.println(raw);
  }

编码转换

 /**
     * 在接收表单的时候,我们常常被中文乱码所困扰,其实大多数原因是使用了不正确的编码方式解码了数据。
     * 于是Convert.convertCharset方法便派上用场了,它可以把乱码转为正确的编码方式
     */
    @Test
    public void convertCharset() {
        String a = "我是青锋";
        //转换后result为乱码
        String result = Convert.convertCharset(a, CharsetUtil.UTF_8, CharsetUtil.ISO_8859_1);
        String raw = Convert.convertCharset(result, CharsetUtil.ISO_8859_1, "UTF-8");
        System.out.println(result);
        System.out.println(raw);
    }

金额大小写转换

 /**
   * 面对财务类需求,Convert.digitToChinese将金钱数转换为大写形式
   */
  @Test
  public void convertTime() {
      double a = 67556.32;
      //结果为:"陆万柒仟伍佰伍拾陆元叁角贰分"
      String digitUppercase = Convert.digitToChinese(a);
      System.out.println(digitUppercase);
  }

数字转换-数字简化

/**
     *  数字简化
     */
    @Test
    public void numberToSimple() {
        // 1.2k
        String format1 = Convert.numberToSimple(1200);
        System.out.println(format1);
    }

数字转换-数字转中文

 /**
     *  数字转中文 数字转中文方法中,只保留两位小数
     */
    @Test
    public void numberToChinese() {
        // 一万零八百八十九点七二
        String f1 = Convert.numberToChinese(10889.72356, false);
        System.out.println(f1);
        // 使用金额大写
        // 壹万贰仟陆佰伍拾叁
        String f2 = Convert.numberToChinese(12653, true);
        System.out.println(f2);
    }

数字转换-中文转数字

 /**
     * 数字中文表示转换为数字
     */
    @Test
    public void chineseToNumber() {
        // 1.2k
        int f1 = Convert.chineseToNumber("一千零一十二");
        System.out.println(f1);
    }
原文链接:,转发请注明来源!