在Java的日常开发中,类型转换是一个常见但又让人头疼的问题。无论是字符串转数字、日期转字符串,还是各种复杂对象之间的转换,稍有不慎就会抛出异常。今天,我来给大家介绍一个神器——Hutool中的Convert类,它能让类型转换变得轻而易举,如同行云流水一般顺畅!
一、引入依赖
首先,需要在Maven项目中引入Hutool依赖。在pom.xml
文件中添加以下内容:
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.16</version>
</dependency>
二、Convert类的核心功能:
1. 基本类型转换
Convert类支持将字符串转换为各种基本类型,如int
、long
、double
等。不仅如此,它还支持将对象转换为这些基本类型,避免了手动拆箱的麻烦。
String str = "1024";
// 字符串转int
int num = Convert.toInt(str);
// 字符串转long
long longNum = Convert.toLong(str);
// 字符串转double
double doubleNum = Convert.toDouble(str);
2. 字符串与日期转换
日期和字符串之间的转换是开发中的常见需求。Convert类提供了简单的方法来实现这一功能。
String dateStr = "2025-03-10";
// 字符串转日期
Date date = Convert.toDate(dateStr);
System.out.println("date = " + date);
Date now = new Date();
// 日期转字符串
String nowStr = Convert.toStr(now);
System.out.println("nowStr = " + nowStr);
3. 转换为指定类型数组
Convert类提供了toxxxArray
方法,可以轻松的将一种数据类型的数组转换为其他类型的数组。
String[] b = { "6", "2", "3", "9" };
//结果为Integer数组
Integer[] intArray = Convert.toIntArray(b);
long[] c = {1,2,3,4,5,6};
//结果为Integer数组
Integer[] intArray2 = Convert.toIntArray(c);
4. 集合与数组转换
Convert类还支持集合与数组之间的转换,方便在不同数据结构之间进行切换。
// 集合转数组
List<String> list = Arrays.asList("a", "b", "c", "d");
String[] array = Convert.toStrArray(list);
// 数组转集合
String[] arr = {"1", "2", "3"};
List<Integer> intList = Convert.toList(Integer.class, arr);
5. 数字转换
Convert类还支持常见的数字转换操作。例如:数字转英文,数字简化,数字转中文,中文转数字等等。
// 数字转英文,结果:EIGHTY EIGHT AND CENTS FIFTY SIX ONLY
String format = Convert.numberToWord(88.56);
System.out.println("format = " + format);
// 数字简化 结果:3.3k
String format1 = Convert.numberToSimple(3300);
System.out.println("format1 = " + format1);
// 数字转中文 结果:九百九十九点三五
String f1 = Convert.numberToChinese(999.35, false);
System.out.println("f1 = " + f1);
// 数字转中文 结果:捌拾玖万肆仟陆佰叁拾贰
String f2 = Convert.numberToChinese(894632, true);
System.out.println("f2 = " + f2);
// 中文转数字 结果:1035
int f3 = Convert.chineseToNumber("一千零三十五");
System.out.println("f3 = " + f3);
6. 其它类型转换
Convert类还支持一些其它类型的转换操作。如半角/全角互转,字符串/Unicode互转,16进制/字符串互转等等。
String a = "1234567890";
//半角转全角 结果:1234567890
String sbc = Convert.toSBC(a);
System.out.println("sbc = " + sbc);
//全角转半角 结果:1234567890
String dbc = Convert.toDBC(sbc);
System.out.println("dbc = " + dbc);
String message = "欢迎关注我的博客:rabiit";
//字符串转Unicode 结果:\u6b22\u8fce\u5173\u6ce8\u6211\u7684\u516c\u4f17\u53f7\uff1aJava\u6280\u672f\u5206\u4eab-\u963f\u7a33
String unicode = Convert.strToUnicode(message);
System.out.println("unicode = " + unicode);
//Unicode转字符串 结果:
String raw = Convert.unicodeToStr(unicode);
System.out.println("raw = " + raw);
// 字符串转hex 结果:e6aca2e8bf8ee585b3e6b3a8e68891e79a84e585ace4bc97e58fb7efbc9a4a617661e68a80e69cafe58886e4baab2de998bfe7a8b3
String hex = Convert.toHex(message, CharsetUtil.CHARSET_UTF_8);
System.out.println("hex = " + hex);
//hex转字符串 结果:
String raw1 = Convert.hexToStr(hex, CharsetUtil.CHARSET_UTF_8);
System.out.println("raw1 = " + raw1);
总结
Hutool的Convert类是一个非常强大的工具类,能够极大地简化Java开发中的类型转换操作。无论是基本类型、日期、集合,还是复杂对象,Convert类都能轻松应对。如果你还在为类型转换而烦恼,不妨试试Hutool的Convert类,相信它会成为你开发中的得力助手!