Java 中将字符串转换为字符列表

在本教程中,我们将探讨将字符串转换为字符列表的一个常见要求。

1、使用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来有效地表示原始字符串中的每个字符。

2、使用 Java Stream

@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 中。

3、使用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,其中每个字符表示为单独的元素。

4、使用Guava的Lists.charactеrsOf()
Guava是一个广泛使用的 Java 库,它提供了一种将字符串转换为字符列表的便捷方法。
我们看下面的代码示例:

@Test
public void givenString_whenUsingGuavaLists_thenConvertToCharList() {
    List<Character> charList = Lists.charactersOf(inputString);

    assertEquals(inputString.length(), charList.size());
}

5、使用 Java 9+代码еPoints()
在Java 9及更高版本中,codePoints()方法可用于处理 Unicode 字符。让我们举一个简单的例子:

@Test
public void givenString_whenUsingCodePoints_thenConvertToCharList() {
    List<Character> charList = inputString.codePoints()
      .mapToObj(c -> (char) c)
      .toList();

    assertEquals(inputString.length(), charList.size());
}

  • 我们使用codePoints()方法来获取给定字符串中字符的 Unicode 代码点。
  • 之后,我们使用mapToObj操作将每个代码点转换为其相应的字符,从而生成charList。