有时候为了方便数据的存储和传递等,需要把List 转换成String ,然后又需要还原,
所以把方法记在博客里,方便自己查找。
List 转换成 String :
迭代List的每个子项,将他们用“,”隔开,拼接最好是要用StringBuilder 或者StringBuffer
来完成,当然"String+=" 也是可以的:
public static String listToString(List<String> list){
if(list==null){
return null;
}
StringBuilder result = new StringBuilder();
boolean first = true;
//第一个前面不拼接","
for(String string :list) {
if(first) {
first=false;
}else{
result.append(",");
}
result.append(string);
}
return result.toString();
}
String 转换成List :
首先String类没有提供直接转换出List的功能;
String提供了一个根据字符来分割字符串的功能,但是分割的结果是String[]类型的,如果我们需要的是String[]类型,那么正好直接使用,
需要List可以使用如下的方法:
private List<String> stringToList(String strs){
String str[] = strs.split(",");
return Arrays.asList(str);
}
网上找到一个更简洁的list转String
Joiner.on(",").join(list);
如此我们来测试记录一下:
public static void main(String[] args) {
List<String> name =new ArrayList<>(Arrays.asList("xxx","yyy","zzz"));
name.add("aaa");
name.add("bbb");
String nameStr = Joiner.on(",").join(name);
System.out.println(nameStr);//xxx,yyy,zzz,aaa,bbb
List<String> dogs = new ArrayList<String>();
dogs.add("Aigi");
dogs.add("Spitz");
dogs.add("Mastiff");
dogs.add("Finnish Spitz");
dogs.add("Briard");
String dogStr = Joiner.on(",").join(name);
System.out.println(dogStr);//Aigi,Spitz,Mastiff,Finnish Spitz,Briard
String str[] = dogStr.split(",");
System.out.println(Arrays.asList(str));//[Aigi, Spitz, Mastiff, Finnish Spitz, Briard]
}
原文链接:https://blog.csdn.net/sotong006/article/details/80491992