[英]which is better way to casting in java
在我的编码中,我需要将整数值更改为字符串值。 要将强制转换整数转换为字符串,请使用串联“”到整数 。
我找到了另一种使用String.parseInt(..)的方法; 方法。
我的问题是我不知道哪个是在java中进行强制转换的优化方法以及它是如何优化的? 除了我的代码之外还有其他任何方式可以投射吗?
我的示例代码:
int total = mark1 + mark2;
String str_total = ""+total; // currently doing.
.......
String str_total = String.parseInt(total); // i am planning to do.
你也可以用 -
String str_total = String.valueOf(total);
要么
在代码中使用Integer rahter而不是int,然后在Integer上使用toString()
Integer total = mark1 + mark2;
String str_total = total.toString();
在你的代码中 -
String str_total =“”+ total;
实际上,您首先为""
和第二个str_total
创建2个新的字符串对象
但在我的代码中,只会创建one new string object
。
在String类中实现valueOf如下 -
public static String valueOf(int i) {
return Integer.toString(i);
}
这里toString将创建一个新的String对象
String.valueOf(int)
方法调用Integer.toString(int)
。
执行字符串连接( ""+i
),首先将i
转换为Integer
,然后调用函数Integer.toString
以获取整数的String
值。
因此,调用String.valueOf(int)
将比字符串连接更好,因为它会跳过Integer
对象的创建。
String str_total = String.valueOf(total);
String.valueOf(int)
比""+int
更有效,所以更喜欢使用String.valueOf(int)
请参阅此链接以了解性能测量。
在Jdk> 1.5中你也可以使用它。
String str_total= String.format ("%d", total);
另一种方法:
int intValue = 1;
String str1 = String.format("%d", intValue);
您还可以控制值的显示方式(前导零,基数等)。 在此处查找更多信息。
关于这一点很酷的是,在我看来,这个
String str2 = String.format("Blabla %d blupp %dm etc", intValue1, intValue2);
看起来更具可读性(如果您熟悉这些格式),那么
String str3 = "Balbla " + intValue1 + " blupp " + intValue2 + "m etc";
(+你可以更好地控制它的显示方式)。
由于Integer
不能保持如此大的价值,这将导致它用科学记数法表示,我认为
Integer.toString()
会完全奏效。
如果你想以某种方式格式化你的数字,你应该像这样使用NumberFormat
:
Integer myInt = 31535468;
NumberFormat nf = NumberFormat.getInstance();
String myString = nf.format(myInt);
我认为使用NumberFormat
是这里最常规的方式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.