Java List 转 String
最后修改于 2025 年 5 月 31 日
本教程介绍了将 List
转换为 Java 中单个字符串的不同技术。
Java 提供了几种有效的方法,可以将列表元素连接成一个字符串,每种方法都适用于不同的场景。
String.join
- 非常适合简单的分隔字符串。Collectors.joining
- 与 Java Streams 一起使用,用于高级列表处理。StringBuilder
- 在大型字符串连接中性能最佳。StringJoiner
- 适用于带有前缀和后缀的结构化输出。- 手动字符串连接(循环) - 一种传统方法,但效率较低。
通过选择正确的方法,您可以根据您的具体用例优化性能和可读性。
使用 String.join
使用分隔符连接列表元素的最简单方法
void main() { List<String> words = List.of("a", "visit", "to", "London"); String result = String.join("-", words); System.out.println(result); }
这将从列表中创建一个用连字符分隔的字符串。 适用于任何 List<String>。
使用 Stream 和 Collectors.joining
Collectors.joining
方法对于将流中的元素连接成具有指定分隔符的单个字符串非常有用。
void main() { List<String> words = List.of("There", "are", "three", "chairs"); String result = words.stream().collect(Collectors.joining(" ")); System.out.println(result); }
这将使用空格连接列表元素。 您可以使用任何分隔符,甚至可以通过传递空字符串来不使用分隔符。
使用 StringBuilder
当您需要更多地控制连接过程(例如处理复杂的逻辑或大型列表)时,StringBuilder
是一个不错的选择。 它允许您有效地附加元素,而无需创建多个中间字符串,这对于性能很重要。
void main() { List<String> words = List.of("There", "are", "three", "chairs"); StringBuilder builder = new StringBuilder(); for (String word : words) { builder.append(word).append(" "); } String result = builder.toString().trim(); System.out.println(result); }
StringBuilder 非常适合大型列表或复杂的连接逻辑。
使用 StringJoiner
当您需要创建具有特定前缀、后缀和分隔符的字符串时,StringJoiner
类非常有用。 它提供了一种简洁的方法来构建具有这些特征的字符串。
void main() { List<String> words = List.of("apple", "banana", "orange"); StringJoiner joiner = new StringJoiner(", ", "[", "]"); words.forEach(joiner::add); System.out.println(joiner.toString()); }
在上面的示例中,我们创建了一个 StringJoiner
,它用逗号连接元素,并将结果包装在方括号中。
循环中的手动字符串连接
您可以使用一个简单的循环手动将列表元素连接到一个字符串中。 与使用 StringBuilder
或 String.join
相比,对于大型列表,这种方法的效率较低。
void main() { List<String> words = List.of("one", "two", "three"); String result = ""; for (int i = 0; i < words.size(); i++) { result += words.get(i); if (i < words.size() - 1) { result += ", "; } } System.out.println(result); }
本示例使用手动循环将列表的元素连接到以逗号分隔的字符串中。
转换非字符串列表
如果您有一个非字符串元素列表(例如整数),您可以使用流中的 map
函数将它们转换为字符串,然后再连接它们。 当您想将数字或其他类型的列表格式化为单个字符串时,这尤其有用。
void main() { List<Integer> numbers = List.of(1, 2, 3, 4); String result = numbers.stream() .map(String::valueOf) .collect(Collectors.joining(",")); System.out.println(result); }
这将把一个整数列表转换成一个逗号分隔的字符串。
来源
本教程演示了将 List
转换为 Java 中的字符串的各种方法。
作者
列出所有Java教程。