在 Java 中將字串轉換為字元列表
一、簡介
Java 提供了多種操作字串的方法。
在本教程中,我們將探討將字串轉換為字元清單的一個常見要求。
2. 使用toCharArray()
toCharArray()
是將字串轉換為字元陣列的簡單方法。
我們看下面的程式碼範例:
@Test
public void givenString_whenUsingToCharArray_thenConvertToCharList() {
char[] charArray = inputString.toCharArray();
List<Character> charList = new ArrayList<>();
for (char c : charArray) {
charList.add(c);
}
assertEquals(inputString.length(), charList.size());
}
在此方法中,我們使用toCharArray()
方法系統地將提供的inputString
轉換為字元陣列。接下來,我們迭代這個字元數組,系統地填充一個名為charList
的List<Charactеr>
來有效地表示原始字串中的每個字元。
為了驗證此轉換的準確性,然後使用斷言來確保原始inputString
和結果charList
之間的長度相等。
3. 使用 Java Stream
隨著 Java 8 的出現,我們可以利用串流以更簡潔、更實用的方式實現轉換。
讓我們來看這個例子:
@Test
public void givenString_whenUsingMapToObj_thenConvertToCharList() {
List<Character> charList = inputString.chars()
.mapToObj(c -> (char) c)
.toList();
assertEquals(inputString.length(), charList.size());
}
在這裡,我們對inputString
使用mapToObj()
運算來處理其 Unicode 碼位。具體來說,這使我們能夠將每個代碼點轉換為其相應的字元。然後,我們使用toList()
方法有效地將這些轉換後的字元收集到charList.
4. 使用Arrays.asList()
為了執行轉換,我們可以使用另一種方法,將Arrays.asList()
方法與split()
方法結合使用。這是一個例子:
@Test
public void givenString_whenUsingSplit_thenConvertToStringList() {
String[] charArray = inputString.split("");
List<String> charList = Arrays.asList(charArray);
assertEquals(inputString.length(), charList.size());
}
在此測試方法中,我們首先使用split()
方法將inputString
分成單一字串的陣列。隨後,我們使用asList()
方法將此陣列轉換為List<String>
,其中每個字元表示為單獨的元素。
5.使用Guava的Lists.charactеrsOf()
Guava 是一個廣泛使用的 Java 函式庫,它提供了一種將字串轉換為字元清單的便捷方法。
我們看下面的程式碼範例:
@Test
public void givenString_whenUsingGuavaLists_thenConvertToCharList() {
List<Character> charList = Lists.charactersOf(inputString);
assertEquals(inputString.length(), charList.size());
}
在這裡,我們利用 Guava 的charactеrsOf()
將給定的字串轉換為字元清單。這種方法簡化了過程,提供了一種簡潔而富有表現力的方法來直接從字串創建List<Charactеr>
,從而增強了程式碼的可讀性。
6. 使用 Java 9+ codеPoints()
在 Java 9 及更高版本中, codеPoints()
方法可用於處理 Unicode 字元。讓我們舉一個簡單的例子:
@Test
public void givenString_whenUsingCodePoints_thenConvertToCharList() {
List<Character> charList = inputString.codePoints()
.mapToObj(c -> (char) c)
.toList();
assertEquals(inputString.length(), charList.size());
}
在上面的程式碼片段中,我們使用codеPoints()
方法來取得給定字串中字元的 Unicode 程式碼點。之後,我們使用mapToObj
操作將每個代碼點轉換為其對應的字符,從而產生charList
。
七、結論
總之,在 Java 中將字串轉換為字元列表可以透過多種方法來實現,每種方法都有自己的優點。
根據我們的特定需求和我們正在使用的 Java 版本,選擇最適合我們要求的方法。
與往常一樣,本文的完整程式碼範例可以在 GitHub 上找到。