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());