2012-07-11 35 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是這裏最傳統的方式。