Java中int转String和String转int各⽅法效率对⽐
⼀、int转String有三种⽅式
(1)num + ""
(2)String.valueOf(num)
(String(num)
//int => String
int num = 123456789;
//(1)num + ""
long start = System.currentTimeMillis();//得到开始运⾏时系统时间
for(int i=0; i<100000; i++){
String str = num + "";
}
long end = System.currentTimeMillis();//得到结束运⾏时系统时间
System.out.println("num + \"\" : " + (end - start));
//(2)String.valueOf(num)
start = System.currentTimeMillis();
for(int i=0; i<100000; i++){
String str = String.valueOf(num);
}
end = System.currentTimeMillis();
System.out.println("String.valueOf(num) : " + (end - start));
//(String(num)
start = System.currentTimeMillis();
for(int i=0; i<100000; i++){
String str = String(num);
}
end = System.currentTimeMillis();
java valueofSystem.out.println("String(num) : " + (end - start));
运⾏结果:
num + "" : 45
String.valueOf(num) : 8
可以发现,第⼀种⽅式与后⾯两种⽅式运⾏的时间相差⽐较⼤。关于这⼀点的解释,可以参考写的⽐较详细,这⾥只说⼀下区别:
String.valueOf():采⽤String.valueOf(object)的基础是Object#toString(),但这⾥不⽤担⼼object是否为null这⼀问题,JDK中String#valueOf(object)源码:
public static String valueOf(Object obj){return (obj==null)?"null":String();}
所以使⽤该⽅法不必担⼼object为null的情况,但同时注意当object为null时该⽅法返回"null",⽽⾮null
⼆、String转int有两种⽅式
(1)Integer.parseInt(str)
(2)Integer.valueOf(str).intValue()
//String => int
String s = "123456789";
/
/(1)Integer.parseInt(str)
start = System.currentTimeMillis();
for(int i=0; i<100000; i++){
int n = Integer.parseInt(s);
}
end = System.currentTimeMillis();
System.out.println("Integer.parseInt(str) : " + (end - start));
//(2)Integer.valueOf(str).intValue()
start = System.currentTimeMillis();
for(int i=0; i<100000; i++){
int n = Integer.valueOf(s).intValue();
}
end = System.currentTimeMillis();
System.out.println("Integer.valueOf(str).intValue() : " + (end - start));
运⾏结果:
Integer.parseInt(str) : 13
Integer.valueOf(str).intValue() : 10
可以发现,两者运⾏时间基本差不多。但是第⼆种⽅法,先是将String => Integer => int,即将String包装类型转化为Integer 包装类型,再将包装类型转化为基本类型。
【包装类型转化为基本类型,调⽤包装类对象的intValue()、shortValue()、doubleValue()等⽅法】
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论