Java中将List列表转换为字符串的三种方法

一枚码仔 2024-09-14 14:35:01 阅读 93

如何在 Java中将List 转换为 String。接下来使用<code>Java 8 Streams Collectors api和String.join()方法将带有逗号分隔符或自定义分隔符的集合转换为字符串。这种转换是通过使用 java api 方法的简单步骤完成的。首先了解如何使用toString()方法将 List 转换为 String,最后学习著名的 apache 库命令StringUtils.join()方法。

对于所有示例,输入列表必须是 String 作为List类型,否则我们需要将非字符串转换为 String。例如,List 是 Double 类型,然后需要先将 double 转换为字符串。

使用标准 toString() 方法

List.toString()是最简单的,但它在开头和结尾添加方括号,每个字符串用逗号分隔符分隔。

缺点是我们不能用另一个分隔符替换逗号,也不能去掉方括号。

import java.util.Arrays;

import java.util.List;

public class ListToStringUsingToStringExample {

public static void main(String args) {

// creating a list with strings.

List<String> list = Arrays.asList("One", "Two", "Three", "Four", "Five");

// converting List<String> to String using toString() method

String stringFromList = list.toString();

// priting the string

System.out.println("String : "+stringFromList);

}

}

输出:

String : [One, Two, Three, Four, Five]

Java 8 String.join()

java 8 String添加了一个特殊的方法String.join()以将集合转换为具有给定分隔符的字符串。

public class ListToStringUsingString_JoinExample {

public static void main(String args) {

// creating a list with strings.

List<String> list = Arrays.asList("One", "Two", "Three", "Four", "Five");

// converting List<String> to String using toString() method

String stringFromList = String.join("~", list);

// priting the string

System.out.println("String with tilde delimiter: "+stringFromList);

// delimiting with pipe | symbol.

String stringPipe = String.join("|", list);

// printing

System.out.println("String with pipe delimiter : "+stringPipe);

}

}

输出:

String with tilde delimiter: One~Two~Three~Four~Five

String with pipe delimiter : One|Two|Three|Four|Five

Collectors.joining()

Collectors.join()方法来自 java 8 stream api。Collctors.joining()方法将分隔符、前缀和后缀作为参数。此方法将列表转换为具有给定分隔符、前缀和后缀的字符串。

查看以下有关使用不同分隔符的 join() 方法的示例。但是,String.join() 方法不提供前缀和后缀选项。

如果您需要自定义分隔符、前缀和后缀,请使用这些。如果您不想要前缀和后缀,则提供空字符串以不在结果字符串前后添加任何内容。

public class ListToStringUsingString_JoinExample {

public static void main(String args) {

// creating a list with strings.

List<String> list = Arrays.asList("One", "Two", "Three", "Four", "Five");

// using java 8 Collectors.joining with delimiter, prefix and suffix

String joiningString = list.stream().collect(Collectors.joining("-", "{", "}"));

// printing

System.out.println("Collectors.joining string : "+joiningString);

String joiningString3 = list.stream().collect(Collectors.joining("@", "", ""));

// printing

System.out.println("Collectors.joining string with @ separator : "+joiningString3);

}

}

输出:

Collectors.joining string : { One-Two-Three-Four-Five}

Collectors.joining string with @ separator : One@Two@Three@Four@Five

Apache Commons StringUtils.join()

最后的方法是使用来自 apache commons 包的外部库。该库有一个方法StringUtils.join() ,它采用类似于 String.join() 方法的列表和分隔符。

public class ListToStringUsingStringUtils_JoinExample {

public static void main(String args) {

// creating a list with strings.

List<String> list = Arrays.asList("One", "Two", "Three", "Four", "Five");

// using java 8 Collectors.joining with delimiter, prefix and suffix

String joiningString = StringUtils.join(list, "^");

// printing

System.out.println("StringUtils.join string with ^ delimiter : "+joiningString);

String joiningString3 = StringUtils.join(list, "$");

// printing

System.out.println("StringUtils.join string with @ separator : "+joiningString3);

}

}

输出:

StringUtils.join string with ^ delimiter : One^Two^Three^Four^Five

StringUtils.join string with @ separator : One$Two$Three$Four$Five

结论

在本文中,我们已经看到了在 java 8 之前和之后如何使用不同的方法在 java 中将 List 转换为 String。对给定的分隔符使用 String.join() 方法从 List 生成字符串是很好的。或者,如果您想添加前缀或后缀,请使用带有分隔符、前缀和后缀值的流 api Collectors.joining() 方法。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。