常用的数据转换
1. FastJson
1.1 Json格式和java对象之间的转换
Json转换为java对象
JSONObject recvDataJson;
deviceDataReport = recvDataJson.toJavaObject(DeviceDataReport.class);
java对象转换为Json
QuarterPduData quarterPduData;
JSONObject.toJSONString(quarterPduData)
1.2 JSON和字符串之间的转换
Json转换为字符串
JSONObject recvDataJson;
deviceDataReport = recvDataJson.toJavaObject(DeviceDataReport.class);
字符串转换为Json
QuarterPduData quarterPduData;
JSONObject.toJSONString(quarterPduData)
2. 日期之间的转换
继承org.apache.commons.lang3.time该类。
2.1 日期型字符串转化为日期 格式
public static Date parseDate(Object str){
return DateUtiles.parseDate(str.toString(), yyyy-MM-dd HH:mm:ss);
}
2.2 时间戳转换为格式化后的date
public static Date stampToTime(String s){
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
long lt = new Long(s);
//将时间戳转换为时间
Date date = new Date(lt);
//将时间调整为yyyy-MM-dd HH:mm:ss时间样式
String res = simpleDateFormat.format(date);
//再将日期型字符串转换为日期格式
return parseDate(res);
}
3. 常用数据类型转换
3.1 int
int转Integer
int i=1;
Integer i1=new Integer(i);
Integer i2=Integer.valueOf(i);
// 自动装箱(实际使用的valueOf()方法)
Integer i3=i;
int转String
int i=15;
//使用+
String s1=i+"";
//使用Integer中的toString方法 f
String s = Integer.toString(i, 16);
String s2 = Integer.toString(i, 2);
String s3 = Integer.toBinaryString(i); //转为2进制字符串形式
//true
System.out.println(s2.equals(s3));
Integer缓冲区(面试)
Integer integer1=100;
Integer integer2=100;
//true
System.out.println(integer1==integer2);
Integer integer3=200;
Integer integer4=200;
//false
System.out.println(integer3==integer4);
分析
- 如果i在
-128到127之间,从Integer缓冲区拿(true)。否则新建一个Integer对象(false)。
//自动装箱使用的是Integer.valueOf()方法
public static Integer valueOf(int i) {
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i);
}
3.2 String
String转int
- 注意int范围
String s="150";
//将16进制的字符串s转换为int类型(10进制) 336
int i =Integer.parseInt(s,16);
16进制字符串转10进制字符串
public static String hexToDec(String hex){
//1.先将16进制字符串转为10进制int类型
int i = Integer.parseInt(hex, 16);
return Integer.toString(i);
}
10进制字符串转16进制字符串
//将十进制字符串转换为十六进制字符串
public static String decToHex (String dec){
int i = Integer.parseInt(dec);
return Integer.toHexString(i);
}
16进制字符串转2进制字符串
//十六进制的字符串转换为byte数组
public static String parseHexStrByte(String hexStr){
StringBuilder a= new StringBuilder();
for (int i = 0; i < hexStr.length(); i++) {
a.append(g(hexStr.charAt(i)));
}
return a.toString();
}
public static String g(char charAt) {
switch (charAt) {
case '0':
return "0000";
case '1':
return "0001";
case '2':
return "0010";
case '3':
return "0011";
case '4':
return "0100";
case '5':
return "0101";
case '6':
return "0110";
case '7':
return "0111";
case '8':
return "1000";
case '9':
return "1001";
case 'A':
return "1010";
case 'B':
return "1011";
case 'C':
return "1100";
case 'D':
return "1101";
case 'E':
return "1110";
case 'F':
return "1111";
}
return null;
}
3.3 boolean
String转boolean
String b = "true";
boolean b1 = Boolean.parseBoolean(b);
//true
System.out.println(b1);
String b2 ="ssss";
boolean b3 = Boolean.parseBoolean(b2);
//false(非true的String都是false)
System.out.println(b3);

浙公网安备 33010602011771号