一、使用split()方法进行分割
在将一个字符串转换为ArrayList时,我们可以使用String类的split()方法对该字符串进行分割,然后将分割后的各个子字符串逐个添加到ArrayList中。对于小规模的字符串转换,这种方法可以达到较高的效率。
String str = "a,b,c,d"; String[] strArr = str.split(","); ArrayList<String> list = new ArrayList<>(); for(String s : strArr) { list.add(s); }
使用上述代码可以将字符串"a,b,c,d"转换为ArrayList,其中用逗号","对字符串进行分割。
二、使用正则表达式进行分割
在split()方法中,也可以使用正则表达式对字符串进行更复杂的分割。但是,由于正则表达式的执行效率较低,当字符串较庞大时,采用正则表达式进行分割的效率会大大降低。
String str = "1,2,3;a,b,c;d,e,f"; String[] strArr = str.split(";|,"); ArrayList<String> list = new ArrayList<>(); for(String s : strArr) { list.add(s); }
使用上述代码可以将字符串"1,2,3;a,b,c;d,e,f"按分号";"和逗号","进行分割,然后将分割后的各个子字符串逐个添加到ArrayList中。
三、使用StringTokenizer进行分割
在对字符串进行分割时,除了split()方法外,还可以使用StringTokenizer类进行分割。相较于split()方法,StringTokenizer采用了更原始的操作方式,因而效率更高。
String str = "apple,orange,banana"; StringTokenizer st = new StringTokenizer(str, ","); ArrayList<String> list = new ArrayList<>(); while (st.hasMoreTokens()) { list.add(st.nextToken()); }
使用上述代码可以将字符串"apple,orange,banana"按逗号","进行分割,然后将分割后的各个子字符串逐个添加到ArrayList中。
四、使用Stream进行快速转换
Java 8引入了Stream API,我们可以使用Stream对字符串进行分割,并将分割后的字符串快速转换为ArrayList。
String str = "1,2,3,4,5"; List<String> list = Arrays.stream(str.split(",")).collect(Collectors.toList());
使用上述代码可以将字符串"1,2,3,4,5"按逗号","进行分割,并将分割后的各个子字符串转换为List。