一个把List转化为以","隔开的字符串的方法

时间:2023-03-09 22:35:00
一个把List<String>转化为以","隔开的字符串的方法
 import java.util.ArrayList;
import java.util.List;
/**
* 集合操作
* @author intrl
* @date 2010-12-15
* @version 1.0
*/
public class Test { public static void main(String[] args) {
List<String> list=new ArrayList<String>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
System.out.println(listToString(list));//aaa,bbb,ccc
} public static String listToString(List<String> stringList){
if (stringList==null) {
return null;
}
StringBuilder result=new StringBuilder();
boolean flag=false;
for (String string : stringList) {
if (flag) {
result.append(",");
}else {
flag=true;
}
result.append(string);
}
return result.toString();
}
}

方法二:

 这代码太垃圾了
为什么不
int length = arr.length ;
StringBuffer buf = new StringBuffer("");
if(length > 0){
buf.append(arr[0]);
}
for(int i = 1 ; i < length ; i++){
buf.append(',');
buf.append(arr[i]);
}

方法三:

apache common包下的StringUtils的join方法:

StringUtils.join(list, ",");

以下其源码:

 public static String join(Iterator iterator, String separator) {

         // handle null, zero and one elements before building a buffer
if (iterator == null) {
return null;
}
if (!iterator.hasNext()) {
return EMPTY;
}
Object first = iterator.next();
if (!iterator.hasNext()) {
return ObjectUtils.toString(first);
} // two or more elements
StringBuffer buf = new StringBuffer(256); // Java default is 16, probably too small
if (first != null) {
buf.append(first);
} while (iterator.hasNext()) {
if (separator != null) {
buf.append(separator);
}
Object obj = iterator.next();
if (obj != null) {
buf.append(obj);
}
}
return buf.toString();
}