-
問題描述
Java中,我們有時需要對現有的字符串進行切割並轉化成一個List集合。
-
解決方案
Java.lang 包中的 String.split() 方法可對現有的字符串進行切割,並返回一個字符串數組
String s = "張三 123,李四 456,王五 789"; String[] str = s.split(",");
- 對 str 的遍歷
所以我們可以用 Arrays.asList() 方法,將數組轉化為 List 集合
List<String> list = Arrays.asList(s.split(","));
但需要注意的是,Arrays.asList() 返回的是 Arrays 的內部類 ArrayList,而不是我們通常定義的 java.util.ArrayList.
雖然二者都是繼承自AbstractList,但 java.util.ArrayList 重寫了remove()、add() 等 AbstractList 中默認拋出異常且不作任何操作的方法。
所以,如果想正常使用 List 集合中的方法,我們還需要進一步轉化 list.
List<String> newlist = new ArrayList<String>(list);
完整轉化如下:
String s = "張三 123,李四 456,王五 789"; List<String> list = Arrays.asList(s.split(",")); List<String> newlist = new ArrayList<String>(list); System.out.println(list);