有时候为了方便数据的存储和传递等,需要把List<String> 转换成String ,然后又需要还原,所以把方法记在博客里,方便自己查找。
List<String > 转换成 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> :
首先String类没有提供直接转换出List的功能;
String提供了一个根据字符来分割字符串的功能,但是分割的结果是String[]类型的,如果我们需要的是String[]类型,那么正好直接使用,需要List可以使用如下的方法:
private List<String> stringToList(String strs){
String str[] = strs.split(",");
return Arrays.asList(str);
}
或者获取String[]对象后自己迭代一遍后返回,但是有现成的方法,还是直接用吧!
如果想使用其他的符号作为分隔符也可以,只要就是使用其他的符号替换上面代码中的",",但是一些特殊字符会出现一些问题,有时需要使用转义字符来操作。
所以,即使打算用其他字符来分割,最好使用不会产生歧义的字符!