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

时间:2012-07-11 07:37:30

标签: java type-conversion

在我的编码中,我需要将整数值更改为字符串值。要将强制转换整数转换为字符串,请使用串联“”到整数

我发现另一种方法是使用 String.parseInt(..); 方法。

我的问题是我不知道哪个是在java中进行强制转换的优化方法以及它是如何优化的?除了我的代码之外还有其他任何方式可以投射吗?

我的示例代码:

int total = mark1 + mark2;
String str_total = ""+total;  // currently doing.

.......

String str_total = String.parseInt(total);  // i am planning to do.

5 个答案:

答案 0 :(得分:1)

您也可以使用 -

String str_total = String.valueOf(total); 

OR

在代码中使用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对象

答案 1 :(得分:1)

String.valueOf(int)方法调用Integer.toString(int)

执行字符串连接(""+i),首先将i转换为Integer,然后调用函数Integer.toString以获取String的值整数。

因此,调用String.valueOf(int)将比字符串连接更好,因为它会跳过Integer对象的创建。

答案 2 :(得分:0)

String str_total = String.valueOf(total); 

String.valueOf(int)效率高于""+int所以更喜欢使用String.valueOf(int)

请参阅this链接以了解性能测量结果。

在Jdk中> 1.5你也可以使用它。

String str_total= String.format ("%d", total);

答案 3 :(得分:0)

另一种方法:

int intValue = 1;    
String str1 = String.format("%d", intValue);

您还可以控制值的显示方式(前导零,基数等)。查找更多信息here

关于这一点很酷的是,在我看来,这个

String str2 = String.format("Blabla %d blupp %dm etc", intValue1, intValue2);

看起来更具可读性(如果您熟悉格式),那么

String str3 = "Balbla " + intValue1 + " blupp " + intValue2 + "m etc"; 

(+你可以更好地控制它的显示方式)。

答案 4 :(得分:0)

由于Integer不能保持如此大的价值,这会使其用科学记数法表示,我认为

Integer.toString()

将完全奏效。

如果您想以某种方式格式化数字,请使用NumberFormat,如下所示:

Integer myInt = 31535468;
NumberFormat nf = NumberFormat.getInstance();
String myString = nf.format(myInt);

我认为使用NumberFormat是最传统的方式。