int -> String
public static void main(String[] agrs) {
Integer i = 20;
String str1 = i + "";//第一种方法
String str2 = String.valueOf(i);//第二种方法
String str3 = Integer.toString(i);//第三种方法
System.out.println(str1);//20
System.out.println(str2);//20
System.out.println(str3);//20
}
经过多次的反复测试,tostring()是最快的,num+""是最慢的,
在使用第一种方法或者第二种方法在使用的时候,不用去判断所传的对象是否为null,但是必须注意,如果传的是null,返回来的是一个为null的字符串而不是null值,这个地方需要切记。
public static void main(String[] agrs) {
Integer i = null;
String str1 = i + "";//第一种方法
String str2 = String.valueOf(i);//第二种方法
//String str3 = Integer.toString(i);//该方法不可以接受用null
System.out.println(str1.length());//4
System.out.println(str2.length());//4
System.out.println(StringUtils.isEmpty(str1) && StringUtils.isEmpty(str2));//false
}
String -> int
当String类型为数字时
public static void main(String[] agrs) {
String str = "123";
int i1 = Integer.parseInt(str);//方法一(推荐)
int i2 = Integer.valueOf(str).intValue();//方法二
}
当String类型为字符时
public static void main(String[] agrs) {
String str = "aaa";
int i1 = Integer.parseInt(str);//方法一(推荐)
int i2 = Integer.valueOf(str).intValue();//方法二
}
执行结果:
当String超出int上限时
public static void main(String[] agrs) {
String str = "2147483648";//int的最大值2147483647
//System.out.println(Integer.parseInt(str));//NumberFormatException
long l = Long.parseLong(str);
}