java List集合、数组、String字符串之间转换
一、字符串转数组
用".“或”|“作为分隔时候,必须转义,String.split(”.“)或 String.split(”|“),这样才能正确的分隔开
如果在一个字符串中有多个分隔符,可以用”|"作为连字符,把三个都分隔出来
String str1 = "lvjiushiwo";
//Sting 自带方法(自我感觉用的极少)
char[] charArr = str1.toCharArray(); //char数组
//平常用的都是这个
String[] strArr = str1.split(""); //String 数组
String str2 = "1.1.1|2|2,2+4=6@3+3=6";
// 注意
String[] str2Arr1 = str2.split("."); // 结果为 {}
String[] str2Arr2 = str2.split("\\.");// 结果为 {"1","1","1|2|2,2+4=6@3+3=6"}
String[] strArr3 = str2.split(",|@");// 结果为 {"1.1.1|2|2","2+4=6","3+3=6"}
二、数组转字符串
注意:其中StringUtils.join()需引入 common-lang3 的 jar 包
String[] arr1 = new String[]{"1", "3", "4"};
// 将数组变成字符串
String str1= StringUtils.join(arr1);
// 将数组用逗号分隔变成字符串
String str2= StringUtils.join(arr1, ",");
三、数组转List集合
注意:方式一不能进行list数据添加(会报错:UnsupportedOperationException)
// 方式一
List<String> list1 = Arrays.asList(arr1); // [1, 3, 4]
// 方式二优化
//asList的返回的ArrayList 是一个内部类对象并不是java.util.ArrayList
List<String> strLits = new ArrayList(Arrays.asList(arr1));
//方式三 先将ArrayList创建出来,在一起添加进去
List<String> list2 = new ArrayList();
Collections.addAll(list2, arr1);
//方式四 stream
Stream<String> stream = Arrays.stream(arr1);
List<String> list = stream.collect(Collectors.toList());
//方式五 一个一个添加。。。。。
四、List集合转数组
// 创建List
List<String> list = new ArrayList<>(Arrays.asList("1","2","3","4"));
//方式一 toArray()方法 需要设置数组大小
String[] strArr1 = list.toArray(new String[list.size()]);
//方式二 Stream流的toArray()方法
String[] strArr2 = list.stream().toArray(String[]::new);
//方式三 循环添加。。。。