一个很有经验的编程方式

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

 

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

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

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

你可能感兴趣的:(一个很有经验的编程方式)