以下哪種方式更適合在Java中將Integer,Double轉換爲String。將整數,雙精度型轉換爲Java中的字符串
String.valueOf(doubleVal)
doubleVal + ""
doubleVal.toString()
謝謝。
以下哪種方式更適合在Java中將Integer,Double轉換爲String。將整數,雙精度型轉換爲Java中的字符串
String.valueOf(doubleVal)
doubleVal + ""
doubleVal.toString()
謝謝。
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();
}
我不認爲有性能差異。去最可讀的!
第一個和doublevar.toString()完全等價(檢查javadoc)。第二個更適合連接更長的字符串。
如果您需要格式化您的號碼被表示爲一個字符串的方式,反正你需要尋找到other classes
@arturnt有一點。如果你不打算把它和任何東西連接起來,那麼第二種方法可能會更糟。 – Miquel
從官方源:
public static String valueOf(double d) {
return Double.toString(d);
}
所以第一個和第三個是不是真的不同,只要doubleVal
是double
,而不是Double
。這是因爲在Double
的情況下,你會打電話給
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
第二是肯定更糟,因爲的需要連接。
結論:
繼的問題,我必須假設的最有效方式是調用toString()
方法。
第一和第三是好的,第二是壞的。
第二個錯誤的原因是代碼沒有顯示你想要做什麼。該代碼表示,如果實際上只希望在連接之前發生的轉換,您希望將該值與空字符串進行連接。
我傾向於使用Integer.toString(int)
,當您使用String.valueOf(int)
時,它內部調用Integer.toString(int)
(與long,float和double相同)。但爲了便於閱讀,最好使用String.valueOf()
根據是否使用原型double
類型或其對象包裝Double
,存在輕微的語義差異。
對原始文件double
有效的任何東西也適用於包裝爲Double
的對象,但是相反將不起作用。 (即,如果該參數是Double
類型的原始雙將不被接受。)
而且,Double
類型的值可以爲空,但是原始double
類型不能。
除此之外,根本沒有太大的差別。對於你提供的代碼片段,沒有什麼值得真正談論的。
I)將String.valueOf(int i)以 II)Integer.toString(int i)以
尋找這些方法實施後,我看到的是,第一個是調用第二個。因此我的所有來將String.valueOf電話(int i)以涉及比直接調用Integer.toString一個多個呼叫(int i)以
就在做同樣的事情
在字符串類型不同的方式,我們有幾種方法的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方法更靈活,並且爲什麼在那裏可用。
除了調試,所有這些方法都不會令人滿意,因爲它們沒有定義格式。你應該看看'String.format'和'DecimalFormat'。 –