杰瑞科技汇

Java string转list,哪种方法最高效?

在 Java 中,将 String 转换为 List 是一个常见操作,具体转换方式取决于你希望如何分割字符串,例如按单个字符、按特定分隔符(如逗号、空格)或按正则表达式。

Java string转list,哪种方法最高效?-图1
(图片来源网络,侵删)

以下是几种常见的转换方法:


方法 1:按单个字符分割(每个字符作为一个元素)

如果希望将字符串的每个字符作为一个独立的元素存入 List,可以使用 String.toCharArray() + Arrays.asList()

String str = "hello";
List<Character> charList = new ArrayList<>();
// 方法 1:遍历字符数组
for (char c : str.toCharArray()) {
    charList.add(c);
}
// 方法 2:使用 Java 8 Stream(更简洁)
List<Character> charListStream = str.chars()
        .mapToObj(c -> (char) c)
        .collect(Collectors.toList());
System.out.println(charList);      // [h, e, l, l, o]
System.out.println(charListStream); // [h, e, l, l, o]

方法 2:按分隔符分割(如逗号、空格等)

如果字符串包含分隔符(如 、、空格等),可以用 String.split() 分割后再转为 List

示例 1:按逗号分割

String str = "apple,banana,orange";
List<String> list = Arrays.asList(str.split(","));
System.out.println(list); // [apple, banana, orange]

示例 2:按空格分割

String str = "Java is fun";
List<String> list = Arrays.asList(str.split(" "));
System.out.println(list); // [Java, is, fun]

注意事项

  • Arrays.asList() 返回的是固定长度的列表(Arrays$ArrayList),不能添加或删除元素,如果需要动态修改,建议用 new ArrayList<>() 包装:
    List<String> dynamicList = new ArrayList<>(Arrays.asList(str.split(",")));

方法 3:按正则表达式分割

更复杂的分割需求(如多个分隔符)可以用正则表达式:

Java string转list,哪种方法最高效?-图2
(图片来源网络,侵删)
String str = "apple,banana;orange|grape";
List<String> list = Arrays.asList(str.split("[,;|]"));
System.out.println(list); // [apple, banana, orange, grape]

方法 4:使用 Java 8 Stream(灵活处理)

Stream 提供了更灵活的转换方式,例如过滤空字符串或处理复杂逻辑:

String str = "apple,banana,,orange";
List<String> list = Arrays.stream(str.split(","))
        .filter(s -> !s.isEmpty()) // 过滤空字符串
        .collect(Collectors.toList());
System.out.println(list); // [apple, banana, orange]

需求场景 方法 示例
每个字符作为一个元素 toCharArray() + Stream 或遍历 List<Character>
按固定分隔符(如逗号) split(",") + Arrays.asList() List<String>
按正则表达式分割 split("[,;|]") List<String>
动态列表(可增删) new ArrayList<>(Arrays.asList()) ArrayList<String>
复杂逻辑(过滤、转换) Java 8 Stream List<String>

选择适合你的场景的方法即可!

Java string转list,哪种方法最高效?-图3
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇