您的位置:首页 > 其它

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

2016-05-11 20:50 567 查看
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();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: