前言
本文注重于介绍 String 与 int 的互相转化。
int 转化为 String
第一种方法:直接加空字符串
我们直接在 int 类型的数据后面添加空字符串,便可将其转为 String 类型的数据。代码如下:
public class Test {
public static void main(String[] args){
int num = 100;
String str = num + "";
System.out.println("str:" + str);
}
}
结果如下:
第二种方法:String.valueOf(num)
我们直接调用 String.valueOf() 函数便可以将 int 转化为 String,代码如下:
public class Test {
public static void main(String[] args){
int num = 100;
String str = String.valueOf(num);
System.out.println("str:" + str);
}
}
结果如下:
我们来看一下 String.valueOf() 的源码,可以发现,其基础为 Object#toString(),且我们不需要担心 obj 为空的问题,当 obj 为空时,该方法会返回 “null” 而不是 null。
public static String valueOf(Object obj){return (obj==null)?"null":obj.toString();}
第三种方法:Integer.toString(num)
使用该方法可以将 int 转化为 String,代码如下:
public class Test {
public static void main(String[] args){
int num = 111;
String str = Integer.toString(num);
System.out.println("str:" + str);
}
}
调用该方法的基础是 Object#toString(),另外我们需要确保 obj 不为 null,否则会抛出 NullPointerException 异常。obj 为 null 的例子如下:
public class Test {
public static void main(String[] args){
Integer num = null;
String str = Integer.toString(num);
System.out.println("str:" + str);
}
}
结果如下,可以发现确实抛出了空指针异常。
效率对比
使用第二或第三种方法效率要比第一种方法高。
String 转化为 int
第一种方法:Integer.parseInt(str)
调用 Integer.parseInt() 方法可以将 String 转化为 int,代码如下:
public class Test {
public static void main(String[] args){
String str = "1314520";
int num = Integer.parseInt(str);
System.out.println("数字大小为:" + num);
}
}
结果如下:
如果 String 为 null,调用 Integer.parseInt(str) 方法会抛出异常。测试代码如下:
public class Test {
public static void main(String[] args){
String str = null;
int num = Integer.parseInt(str);
System.out.println("数字大小为:" + num);
}
}
结果如下:
如果 String 不能转化为相应的数字,也会抛出相应的异常,代码如下:
public class Test {
public static void main(String[] args){
String str = "34rr";
int num = Integer.parseInt(str);
System.out.println("数字大小为:" + num);
}
}
结果如下:
第二种方法:Integer.valueOf(str).intValue()
测试代码如下:
public class Test {
public static void main(String[] args){
String str = "34";
int num = Integer.valueOf(str).intValue();
System.out.println("数字大小为:" + num);
}
}
结果如下:
经过测试,与 Integer.parseInt(str) 大体相同,如果字符串不能转化为相应的数字或者字符串为 null,会抛出相应的异常。
效率对比
两种方法在效率上大体相同。