繁体   English   中英

这是在java中进行强制转换的更好方法

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM