Java 8 - 将列表转换为字符串的例子
使用不同的方法和apache commons api将java中的列表转换为字符串的快速指南,并附有示例。
1.1.概述
在本教程中,我们将通过示例程序学习如何在java中把List转换为String。
这种转换是通过java api方法的简单步骤完成的。
首先,我们将了解如何使用**toString()**方法将List转换成String。
接下来,使用 Java 8 Streams Collectors api 和
String.join()方法,用逗号分隔符或自定义分隔符将集合转为字符串。
最后,学习著名的库apache命令 StringUtils.join() 方法。
对于所有的例子,输入的列表必须是 List 类型的字符串,否则我们需要将非字符串转换为字符串。例如,List是Double的类型,那么需要先将Double转换为字符串。
2.使用标准toString()方法将列表转换成字符串
List.toString()是最简单的方法,但它在开头和结尾添加方括号,每个字符串用逗号隔开。
缺点是我们不能用其他分隔符替换逗号,也不能删除方括号。
package com.javaprogramto.convert.list2string;
import java.util.Arrays;
import java.util.List;
/**
* Example to convert List to string using toString() method.
*
* @author javaprogramto.com
*
*/
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]
3.使用Java 8的String.join()方法将列表转换成字符串
上述程序在java 8之前和之后都可以工作。但是,java 8中的String增加了一个特殊的方法**String.join()**,可以将集合转换为带有指定分隔符的字符串。
下面的例子是在字符串中加入了管道和蒂尔德分隔符。
import java.util.Arrays;
import java.util.List;
/**
* Example to convert List to string using String.join() method.
*
* @author javaprogramto.com
*
*/
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
4.使用Java 8 Collectors.join()方法将列表转为字符串
Collectors.join() 方法来自java 8 stream api。Collctors.join() 方法以定界符、前缀和后缀为参数。这个方法用给定的分隔符、前缀和后缀将列表转换为字符串。
看下面的例子,用不同的定界符连接()方法。但是,String.join()方法不提供前缀和后缀选项。
如果你需要一个自定义的分隔符、前缀和后缀,那么就用这些。如果你不需要前缀和后缀,那就提供空字符串,不要在结果字符串前后添加任何东西。
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* Example to convert List to string using Collectors.joining() method.
*
* @author javaprogramto.com
*
*/
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
5.使用Apache Commons StringUtils.join()方法将列表转换成字符串
最后一种方法是使用apache commons包的外部库。这个库有一个方法 StringUtils.join(),它接收列表和分隔符,类似于String.join()方法。
import org.apache.commons.lang3.StringUtils;
/**
* Example to convert List to string using apache commons stringutils.join() method.
*
* @author javaprogramto.com
*
*/
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
6.总结
在这篇文章中,我们已经看到了如何在java 8前后使用不同的方法将List转换为String。
使用String.join()方法对一个给定的分隔符从List中生成字符串是很好的。
或者如果你想添加前缀或后缀,那么使用流api Collectors.join()方法,使用分隔符、前缀和后缀值。