2012-07-11 74 views
3

在我编码的各个地方我需要将整数值更改为字符串值。要将转换的整数转换为字符串,我使用与“”到整数的并置。这是更好的方法来铸造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. 
+1

有两个问题给你; 1)你打算做这个手术多少次? (换句话说,你是否可以证明需要优化?)和2)你是否试图对它进行基准测试? :) – posdef 2012-07-11 07:40:06

+2

String中没有parseInt方法。你可能意味着valueOf。 – 2012-07-11 07:43:04

+0

我想为性能明智的编码,以便我需要优化。 – 2012-07-11 07:43:16

回答

1

你也可以使用 -

String str_total = String.valueOf(total); 

OR

使用整型rahter比int在你的代码中,然后使用toStr荷兰国际集团()基于整数像

Integer total = mark1 + mark2; 
String str_total = total.toString(); 

在代码 -

字符串str_total = “” +总;

其实你第一次为""创建两个新的字符串对象和第二str_total

但在我的代码只one new string object将被创建。在String类的valueOf的

实现方式是 -

public static String valueOf(int i) { 
     return Integer.toString(i); 
    } 

这里的toString将创建一个新的String对象

+0

请解释代码如何比我的代码优化?我的意思是快速运行和内存/对象利用率。 – 2012-07-11 07:46:22

+0

感谢您的回答我去与String.valueOf(int)。 – 2012-07-11 07:56:04

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); 
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"; 

(+你更多地控制它如何显示)。

1

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

否则字符串连接(""+i),第一i被转换为Integer,然后将功能Integer.toString被调用,以获得整数的String值。

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

+0

感谢您的回答和解释.i去与String.valueOf(int)。 – 2012-07-11 07:55:34

0

由于Integer无法容纳这么大的价值,这将导致其与科学记数法我认为

Integer.toString() 

彻彻底底的工作表示。

如果你想格式化以某种方式号码,你应该使用NumberFormat这样的:

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

我觉得用NumberFormat是这里最传统的方式。