import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.CharsetUtil;
import org.junit.Assert;
import java.util.Date;
import java.util.List;
import java.util.concurrent.TimeUnit;
/**
* 数据类型转换
*/
public class Demo01 {
public static void main(String[] args) {
//1.使用Hutool工具Convert将int类型转为String类型
int a = 1;
String s = Convert.toStr(a);
System.out.println(s);
//2.转换为指定类型数组
String[] b = {"1","2","3","4"};
Integer[] integers = Convert.toIntArray(b);
for (int i = 0; i < integers.length; i++) {
System.out.println(integers[i]);
}
long[] c = {1,2,3,4,5};
Integer[] arr = Convert.toIntArray(c);
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
//3.转换日期对象
String d = "2017-05-06";
Date date = Convert.toDate(d);
System.out.println(date);
//4.转换为集合
Object[] e = {"a","你","好","",1};
List<?> list = Convert.convert(List.class,e);
System.out.println(list); //[a, 你, 好, , 1]
List<?> list2 = Convert.toList(e);
System.out.println(list2); //[a, 你, 好, , 1]
//5.全角、半角转换
String str = "123456789";
System.out.println(Convert.toSBC(str));
String str1 = "1 2 3 4 5 6 7 8 9";
System.out.println(Convert.toDBC(str1));
//6.Unicode与字符串转换
String str2 = "我是一个小小的可爱的字符串";
System.out.println(Convert.strToUnicode(str2)); //\u6211\u662f\u4e00\u4e2a\u5c0f\u5c0f\u7684\u53ef\u7231\u7684\u5b57\u7b26\u4e32
System.out.println(Convert.unicodeToStr(Convert.strToUnicode(str2))); //我是一个小小的可爱的字符串
//7.编码转换
String str3 = "我不是乱码";
String result = Convert.convertCharset(str3, 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); //我不是乱码
//断言比较两个参数是否相同,如果相同的话正常编译控制台不会出现错误信息,如果不相同则控制台输出错误日志
Assert.assertEquals(raw, str3);
//8.时间单位的转换
//用于转换时长单位,比如一个很大的毫秒,我想获得这个毫秒数对应多少分
long time = 4535345;
long minutes = Convert.convertTime(time, TimeUnit.MILLISECONDS, TimeUnit.MINUTES);
System.out.println(minutes); //75
//9.金额大小写转换
double dd = 67556.32;
String money = Convert.digitToChinese(dd);
System.out.println(money); //陆万柒仟伍佰伍拾陆元叁角贰分
//10.数字转换
//(1)数字转为英文表达
String number = Convert.numberToWord(100.23);
System.out.println(number);
}
}