hutool常见的类型转换方法

任意对象转字符串

Convert.toStr(obj) // 参数传入任意对象Object

转换为指定类型数组

String[] b = { "1", "2", "3", "4" };
//结果为Integer数组
Integer[] intArray = Convert.toIntArray(b);
long[] c = {1,2,3,4,5};
//结果为Integer数组
Integer[] intArray2 = Convert.toIntArray(c);

转换为日期对象

String a = "2017-05-06";
Date date = Convert.toDate(a);

转换为集合

Object[] a = {"a", "你", "好", "", 1};
List<?> list = Convert.convert(List.class, a);
//从4.1.11开始可以这么用
List<?> list = Convert.toList(a);

泛型类型转换

Object[] a = { "a", "你", "好", "", 1 };
List<String> list = Convert.convert(new TypeReference<List<String>>() {}, a);

半角和全角转换

// 半角转全角
String a = "123456789";
//结果为:"123456789"
String sbc = Convert.toSBC(a);
// 全角转半角
String a = "123456789";
//结果为"123456789"
String dbc = Convert.toDBC(a);

16进制(Hex)与字符串互转

// 转为16进制(Hex)字符串
String a = "斗罗大陆";
String hex = Convert.toHex(a, CharsetUtil.CHARSET_UTF_8);
// 将16进制(Hex)字符串转为普通字符串:
String h = "e69697e7bd97e5a4a7e99986";
String h1 = Convert.hexToStr(h, CharsetUtil.CHARSET_UTF_8);
log.info(h1);

Unicode和字符串转换

// string转Unicode
Convert.strToUnicode(str);

// Unicode转string
Convert.unicodeToStr(unicode);

时间单位转换

        // 毫秒
        long a = 318247823;
        // 转换为小时
        long hour = Convert.convertTime(a, TimeUnit.MILLISECONDS, TimeUnit.HOURS);
        log.info(hour + "小时");
        // 转换为分钟
        long minute = Convert.convertTime(a, TimeUnit.MILLISECONDS, TimeUnit.MINUTES);
        log.info(minute + "分钟");
        // 转换为秒
        long second = Convert.convertTime(a, TimeUnit.MILLISECONDS, TimeUnit.SECONDS);
        log.info(second + "秒");

金额大小写转换

        // 零元伍角贰分
        String s = Convert.digitToChinese(Double.parseDouble("0.52"));
        log.info(s);

        // 贰仟叁佰肆拾伍万叁仟贰佰肆拾肆元陆角捌分
        double money = 23453244.68;
        String bigMoney = Convert.digitToChinese(money);
        log.info(bigMoney);

注意 转换为大写只能精确到分(小数点儿后两位),之后的数字会被忽略。

数字转换

// 数字转英文
double a = 23.56;
// TWENTY THREE AND CENTS FIFTY SIX ONLY
String a1 = Convert.numberToWord(a);

// 数字转中文
long b = 345673;
// 跟Convert.digitToChinese方法一样,第二个参数如果设为false,就是中文的一二三四...
String s = Convert.numberToChinese(b, true);

// 数字简化
long b = 345673;
// 34.57w
String s = Convert.numberToSimple(b);
log.info(s);
// 1.2k
String s1 = Convert.numberToSimple(1200);
log.info(s1);

// 中文数字转数字
// 1012
int b = Convert.chineseToNumber("一千零一十二");
log.info(b + "");

原始类和包装类相互转换

// 原始类转换为包装类
Class<?> warpClass = int.class;
Class<?> wraped = Convert.wrap(warpClass);
// class java.lang.Integer
log.info(wraped + "");

// 包装类转换为原始类
Class<?> wrap1  = Long.class;
Class<?> aClass = Convert.unWrap(wrap1);
// long
log.info(aClass.toString());

转载自:https://www.hutool.cn/docs/#/core/类型转换/类型转换工具类-Convert

posted @ 2022-12-06 13:26  合起来的彳亍  阅读(3097)  评论(0编辑  收藏  举报