2013-02-23 29 views
3

的首選方式,我有3種選擇:聲明和原語轉換爲字符串

  1. 聲明double member後來當我必須要通過String使用member + ""
  2. 聲明double member和稍後當我必須通過String使用Double.toString(member)
  3. 聲明Double member = 0.0和稍後當我必須通過String使用member.toString()

我的意見:

  1. 最短的一個。但是,member + ""將被轉換爲new StringBuilder().append(member).append("").toString(),這看起來不夠優雅。
  2. Double.toString(member)我不喜歡它不是從member這個單詞開始,它是最重要的。我們只需要轉換它。最好是member在一開始,因爲我最關注詞的開頭。快速瀏覽,我知道「啊,好吧,我正在通過會員」。和Double.toString(member)我的第一個注意力集中在「啊,好的...一個Double,我們正在做一個成員的... ...好啊!」。
  3. member.toString()看起來很好,因爲Eclipse中的自動完成功能,它的輸入速度可以更快+ +「。但是,對象比基元要慢得多。 Reference.

什麼是最佳選擇?也許還有其他一些選擇?

回答

4

最好的全方位的辦法,這將爲什麼工作,就是:

String s = String.valueOf(x); 

這裏x可以是原始或對象,(重要的)可能是null

編輯:
的hackaliciuos方法是:

X + ""; 

雖然注意,這不是很有效,因爲它編譯爲:

new StringBuilder().append(x).append("").toString(); 

並調用.append(x)調用String.valueOf(x)反正。


注意陣列需要特殊處理:

String s = Arrays.toString(array); 
+1

和對象可以爲null這裏是的toString的弱點。 – 2013-02-23 22:59:50

+0

對於原語,它調用相應包裝類的'toString()'。 – jlordo 2013-02-23 23:00:30

+0

即將寫出另一個答案,注意到數組異常,但你已經知道了。 +1 – 2013-02-23 23:00:59

相關問題