Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。
Hutool中的工具方法来自每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;
Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。
Convert介绍
Convert类可以说是一个工具方法类,里面封装了针对Java常见类型的转换,用于简化类型转换。Convert类中大部分方法为toXXX,参数为Object,可以实现将任意可能的类型转换为指定类型。同时支持第二个参数defaultValue用于在转换失败时返回一个默认值。
Java常见类型转换
1、转换为字符串:
/*** 转换为字符串*/@Testpublic 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、转换为指定类型数组:
/*** 转换为指定类型数组*/@Testpublic 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、转换为日期对象:
/*** 转换为日期对象*/@Testpublic void toDate() {String a = "2022-04-19";Date value = Convert.toDate(a);System.out.println(value);}
4、转换为集合
/*** 转换为集合*/@Testpublic 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);}
半角和全角转换
半角转全角:
String a = "123456789";//结果为:"123456789"String sbc = Convert.toSBC(a);
全角转半角:
String a = "123456789";//结果为"123456789"String dbc = Convert.toDBC(a);
Unicode和字符串转换
Convert类同样可以在字符串和Unicode之间轻松转换:
@Testpublic void unicode() {String a = "我爱青锋";String unicode = Convert.strToUnicode(a);System.out.println(unicode);String raw = Convert.unicodeToStr(unicode);System.out.println(raw);}
编码转换
/*** 在接收表单的时候,我们常常被中文乱码所困扰,其实大多数原因是使用了不正确的编码方式解码了数据。* 于是Convert.convertCharset方法便派上用场了,它可以把乱码转为正确的编码方式*/@Testpublic 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将金钱数转换为大写形式*/@Testpublic void convertTime() {double a = 67556.32;//结果为:"陆万柒仟伍佰伍拾陆元叁角贰分"String digitUppercase = Convert.digitToChinese(a);System.out.println(digitUppercase);}
数字转换
数字简化
/*** 数字简化*/@Testpublic void numberToSimple() {// 1.2kString format1 = Convert.numberToSimple(1200);System.out.println(format1);}
数字转中文
/*** 数字转中文 数字转中文方法中,只保留两位小数*/@Testpublic void numberToChinese() {// 一万零八百八十九点七二String f1 = Convert.numberToChinese(10889.72356, false);System.out.println(f1);// 使用金额大写// 壹万贰仟陆佰伍拾叁String f2 = Convert.numberToChinese(12653, true);System.out.println(f2);}
中文转数字
/*** 数字中文表示转换为数字*/@Testpublic void chineseToNumber() {// 1.2kint f1 = Convert.chineseToNumber("一千零一十二");System.out.println(f1);}
