浅析Java中类型转换:String 与 int、long、Interger、char 互相转换/Java对象与Json字符串间的相互转换
一、String 与 int、long、Interger、char 互相转换
1、String 与 int 互相转换
// String 转 int
int i = Integer.valueOf(my_str).intValue();
int i = Integer.parseInt(str);
// int 转 String
String s = String.valueOf(i);
String s = Integer.toString(i);
String s = "" + i;
2、long 转 String:
使用String.valueOf();类似的,可以把int,double等等都转换成String
Long.valueOf(str);还能把String转换为long,不过需要确定是long型
//一、String类方法,String.valueOf(),比如:
long aa = 123;
String a = String.valueOf(aa);
//二、最简单的直接将long类型的数据加上一个空串
long aa = 123;
String a = aa+"";
3、String 与 Ineger 互转
(1)String 转 Integer
当我们要把String转化为Integer时,一定要对String进行非空判断,否则很可能报空指针异常。
String str = "...";
Integer i = null;
if(str!=null){
i = Integer.valueOf(str);
}
(2)Integer 转 String
//方法一:Integer类的静态方法toString()
Integer a = 2;
String str = Integer.toString(a)
//方法二:Integer类的成员方法toString()
Integer a = 2;
String str = a.toString();
//方法三:String类的静态方法valueOf()
Integer a = 2;
String str = String.valueOf(a);
1、通过toString()方法,可以把整数(包括0)转化为字符串,但是Integer如果是null的话,就会报空指针异常。
2、String.valueOf(Object obj)可以把整型(包括0)转化为字符串,但是Integer如果是null的话,会转化为”null”。
3、当Integer是null的情况下,我们也希望String是null,上面的方法都没法做到。可以自己写一个方法:
public static String toString(Object obj) {
return (obj == null) ? null : obj.toString();
}
另外,Apache提供的ObjectUtils.identityToString(Object obj)也可以实现。但是ObjectUtils.toString(Object obj)不行,该方法会把null转化为“ ”。
4、int 与 Integer 互转
// int 转 Integer
Integer integer = new Integer(i);
// Integer 转 int
int num=Integer.intValue();
5、String 与 char 互转
// String 转 char
char[] ca = "123".toCharArray();
// char 转 String
String s = ca.toString(); //任何类型都可以采用toString()转换成String类型
6、日期相关
//日期
Calendar calendar=Calendar.getInstance();
int year=calendar.get(Calendar.YEAR);
int month=calendar.get(Calendar.MONTH)+1;
int day=calendar.get(Calendar.DATE);
//获取今天的日期字符串
String today=java.text.DateFormat.getDateInstance().format(new java.util.Date());
//获取今天的日期
new java.sql.Date(System.currentTimeMillis());
7、JAVA数据类型转换 :
import java.sql.Date;
public class TypeChange {
public TypeChange() {
}
//change the string type to the int type
public static int stringToInt(String intstr)
{
Integer integer;
integer = Integer.valueOf(intstr);
return integer.intValue();
}
//change int type to the string type
public static String intToString(int value)
{
Integer integer = new Integer(value);
return integer.toString();
}
//change the string type to the float type
public static float stringToFloat(String floatstr)
{
Float floatee;
floatee = Float.valueOf(floatstr);
return floatee.floatValue();
}
//change the float type to the string type
public static String floatToString(float value)
{
Float floatee = new Float(value);
return floatee.toString();
}
//change the string type to the sqlDate type
public static java.sql.Date stringToDate(String dateStr)//转换成时间
{
return java.sql.Date.valueOf(dateStr);
}
//change the sqlDate type to the string type
public static String dateToString(java.sql.Date datee)
{
return datee.toString();
}
public static void main(String[] args)
{
java.sql.Date day ;
day = TypeChange.stringToDate("2003-11-3");
String strday = TypeChange.dateToString(day);
System.out.println(strday);
}
}
二、Java对象与Json字符串间的相互转换
(1)简单的解析json字符串
// 首先将json字符串转换为json对象,然后再解析json对象,过程如下。
JSONObject jsonObject = JSONObject.fromObject(jsonStr);
// 再根据json中的键得到它的值
String name = jsonObject.getString("name");
int num = jsonObject.getInt("num");
(2)将json字符串转换为java对象
同样先将json字符串转换为json对象,再将json对象转换为java对象,如下所示:
//将json字符串转换为json对象
JSONObject obj = new JSONObject().fromObject(jsonStr);
// 将json对象转换为java对象 - 将json对象转换为Person对象
Person jb = (Person)JSONObject.toBean(obj, Person.class);
(3)将java对象转换为json字符串
先将java对象转换为json对象,在将json对象转换为json字符串
JSONObject json = JSONObject.fromObject(obj); // 将java对象转换为json对象
String str = json.toString(); // 将json对象转换为字符串