2012-06-11 101 views
1

以下哪種方式更適合在Java中將Integer,Double轉換爲String。將整數,雙精度型轉換爲Java中的字符串

String.valueOf(doubleVal) 
doubleVal + "" 
doubleVal.toString() 

謝謝。

+3

除了調試,所有這些方法都不會令人滿意,因爲它們沒有定義格式。你應該看看'String.format'和'DecimalFormat'。 –

回答

7

doubleVal + ""是最有可能最糟糕的,因爲它必須做concatanation一個空字符串。但是,其他兩個是相同的。從OpenJDK的源代碼:

// java.lang.String 
public static String valueOf(double d) { 
    return Double.toString(d); 
} 

// java.lang.Double 
public static String toString(double d) { 
    return new FloatingDecimal(d).toJavaFormatString(); 
} 
3

我不認爲有性能差異。去最可讀的!

第一個和doublevar.toString()完全等價(檢查javadoc)。第二個更適合連接更長的字符串。

如果您需要格式化您的號碼被表示爲一個字符串的方式,反正你需要尋找到other classes

+0

@arturnt有一點。如果你不打算把它和任何東西連接起來,那麼第二種方法可能會更糟。 – Miquel

0

從官方源:

public static String valueOf(double d) { 
    return Double.toString(d); 
} 

所以第一個和第三個是不是真的不同,只要doubleValdouble,而不是Double。這是因爲在Double的情況下,你會打電話給

public static String valueOf(Object obj) { 
    return (obj == null) ? "null" : obj.toString(); 
} 

第二是肯定更糟,因爲的需要連接。

結論:

繼的問題,我必須假設的最有效方式是調用toString()方法。

0

第一和第三是好的,第二是壞的。

第二個錯誤的原因是代碼沒有顯示你想要做什麼。該代碼表示​​,如果實際上只希望在連接之前發生的轉換,您希望將該值與空字符串進行連接。

0

我傾向於使用Integer.toString(int),當您使用String.valueOf(int)時,它內部調用Integer.toString(int)(與long,float和double相同)。但爲了便於閱讀,最好使用String.valueOf()

0

根據是否使用原型double類型或其對象包裝Double,存在輕微的語義差異。

對原始文件double有效的任何東西也適用於包裝爲Double的對象,但是相反將不起作用。 (即,如果該參數是Double類型的原始雙將不被接受。)

而且,Double類型的值可以爲空,但是原始double類型不能。

除此之外,根本沒有太大的差別。對於你提供的代碼片段,沒有什麼值得真正談論的。

0

I)將String.valueOf(int i)以 II)Integer.toString(int i)以

尋找這些方法實施後,我看到的是,第一個是調用第二個。因此我的所有來將String.valueOf電話(int i)以涉及比直接調用Integer.toString一個多個呼叫(int i)以

就在做同樣的事情

0

在字符串類型不同的方式,我們有幾種方法的valueOf

static String valueOf(boolean b) 
static String valueOf(char c) 
static String valueOf(char[] data) 
static String valueOf(char[] data, int offset, int count) 
static String valueOf(double d) 
static String valueOf(float f) 
static String valueOf(int i) 
static String valueOf(long l) 
static String valueOf(Object obj) 

正如我們可以看到這些方法能夠解決所有類型的數字

具體方法的每個實現像你提出:那麼對於雙

Double.toString(dobule d) 

在我看來,這不是一些歷史的東西,但更實用的開發者使用從不是從正確的類型String類的方法的valueOf,因爲較少變化,使我們想要改變我們運營的類型。

示例1:

public String doStaff(int num) { 

//Do something with num 

    return String.valueOf(num); 

} 

樣品2:

public String doStaff(int num) { 

//Do somenthing with num 

return Integer.toString(num); 

} 

正如我們在樣品2中看到的,我們必須做兩種變化,相反品嚐之一。

我的結論是使用String類中的valueOf方法更靈活,並且爲什麼在那裏可用。

相關問題