作爲程序員,對於產品內存的消耗一定要嚴格把關,今天看到一個朋友的回帖,點醒了我:
一個很簡單的問題,應該說經常遇到, 將一個集合/數組中的元素組成一個字符串,每個元素之間用一個指定的分隔符隔開,如 :
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();}
下面是朋友的回帖
- public String getContents(List<String> list) throws Exception {
- StringBuilder sb = new StringBuilder();
- for (String content : list)
- sb.append(";").append(content);
- return sb.deleteCharAt(0).toString();
- }
相對於最後一個例子:刪除第一個比刪除最後一個省去減法運算