一個很有經驗的編程方式

 作爲程序員,對於產品內存的消耗一定要嚴格把關,今天看到一個朋友的回帖,點醒了我:

 

一個很簡單的問題,應該說經常遇到, 將一個集合/數組中的元素組成一個字符串,每個元素之間用一個指定的分隔符隔開,如 :

List : ["Apple", "MS", "Google"] ⇒ String : "Apple;MS;Google"

以下使用最基本的代碼實現,有三種方式,都大同小異。Code Review 時,有人提出說總覺得不夠雅。

大家如果有雅的實現方式, 那就亮出來吧~

Java code
public String getContents(List<String> list) throws Exception {
        StringBuilder sb = new StringBuilder();
       for (int i = 0; i < list.size(); i++) {
             String content = list.get(i);
             sb.append(content);
             // 判斷不是list的最後一個元素時,追加分隔符:";"
             if (i < list.size() - 1) {
                 sb.append(";");
             }
        }
             return sb.toString(); }

 

Java code
public String getContents(List<String> list) throws Exception {
        StringBuilder sb = new StringBuilder();
        for (String content : list) {
              sb.append(content).append(";");
        }
               // 截取最後一個分隔符之前的內容
              return sb.substring(0, sb.length() - 1);
}

 

Java code
public String getContents(List<String> list) throws Exception {
        StringBuilder sb = new StringBuilder();
        for (String content : list) {
        sb.append(content).append(";");
        }
        // 將最後一個多餘的分隔符刪除
        return sb.deleteCharAt(sb.length() - 1).toString();
}

 下面是朋友的回帖

Code:
  1. public String getContents(List<String> list) throws Exception {  
  2.     StringBuilder sb = new StringBuilder();  
  3.     for (String content : list)  
  4.         sb.append(";").append(content);  
  5.     return sb.deleteCharAt(0).toString();  
  6. }  

相對於最後一個例子:刪除第一個比刪除最後一個省去減法運算

發佈了41 篇原創文章 · 獲贊 4 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章