一个很有经验的编程方式

来源:互联网 发布:钉钉打卡机mac地址 编辑:程序博客网 时间:2024/04/30 04:28

 作为程序员,对于产品内存的消耗一定要严格把关,今天看到一个朋友的回帖,点醒了我:

 

一个很简单的问题,应该说经常遇到, 将一个集合/数组中的元素组成一个字符串,每个元素之间用一个指定的分隔符隔开,如 :

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. }  

相对于最后一个例子:删除第一个比删除最后一个省去减法运算

原创粉丝点击