浅析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对象转换为字符串

 

posted @ 2017-09-12 22:43  古兰精  阅读(1148)  评论(0编辑  收藏  举报