Java中,我们有时需要对现有的字符串进行切割并转化成一个List集合。
Java.lang 包中的 String.split() 方法可对现有的字符串进行切割,并返回一个字符串数组。
举例:
String str = "aaaaaaaaaaaaaaaaaaaa";
String[] strs = str.split("");
System.out.println("Arrays.toString(strs) = " + Arrays.toString(strs));
List<String> strings1 = Arrays.asList(strs);
System.out.println("strings1 = " + strings1);
/*但需要注意的是,Arrays.asList() 返回的是 Arrays 的内部类 ArrayList,而不是我们通常定义的 java.util.ArrayList.
虽然二者都是继承自AbstractList,但 java.util.ArrayList 重写了remove()、add() 等 AbstractList 中默认抛出异常且不作任何操作的方法。
所以,如果想正常使用 List 集合中的方法,我们还需要进一步转化 list.*/
ArrayList<String> strings2 = new ArrayList<>(strings1);
System.out.println("strings2 = " + strings2);
打印结果:
Arrays.toString(strs) = [a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a]
strings1 = [a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a]
strings2 = [a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a]
需要注意的是,Arrays.asList() 返回的是 Arrays 的内部类 ArrayList,而不是我们通常定义的 java.util.ArrayList。
虽然二者都是继承自AbstractList,但 java.util.ArrayList 重写了remove()、add() 等 AbstractList 中默认抛出异常且不作任何操作的方法。
所以,如果想正常使用 List 集合中的方法,我们还需要进一步转化 list。
总结:
1,String[] str = s.split(“,”);
2,我们可以用 Arrays.asList() 方法,将数组转化为 List 集合:
List<String> list = Arrays.asList(s.split(“,”));
3,如果想正常使用 List 集合中的方法,我们还需要进一步转化 list:
List<String> newlist = new ArrayList<String>(list);