將 List 轉(zhuǎn)換為 String的幾種方式
1、使用toString()方法將 List 轉(zhuǎn)換為 String
2吧碾、使用Java 8 Streams Collectors api和String.join()方法將帶有逗號分隔符或自定義分隔符的集合轉(zhuǎn)換為字符串凰盔。
3、 apache 庫命令StringUtils.join()方法倦春。
對于所有示例户敬,輸入列表必須是 String 作為List類型,否則我們需要將非字符串轉(zhuǎn)換為 String睁本。例如尿庐,List 是 Double 類型,然后需要先將 double 轉(zhuǎn)換為字符串添履。
使用標(biāo)準(zhǔn) toString() 方法
List.toString()是最簡單的屁倔,但它在開頭和結(jié)尾添加方括號,每個字符串用逗號分隔符分隔暮胧。
缺點是我們不能用另一個分隔符替換逗號锐借,也不能去掉方括號。
/**
- 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);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
輸出:String : [One, Two, Three, Four, Five]
1
Java 8 String.join()
java 8 String添加了一個特殊的方法String.join()以將集合轉(zhuǎn)換為具有給定分隔符的字符串往衷。
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);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
輸出:
String with tilde delimiter: OneTwoThreeFourFive
String with pipe delimiter : One|Two|Three|Four|Five
1
2
3
Collectors.joining()
Collectors.join()方法來自 java 8 stream api钞翔。Collctors.joining()方法將分隔符、前綴和后綴作為參數(shù)席舍。此方法將列表轉(zhuǎn)換為具有給定分隔符布轿、前綴和后綴的字符串。
查看以下有關(guān)使用不同分隔符的 join() 方法的示例来颤。但是汰扭,String.join() 方法不提供前綴和后綴選項。
如果您需要自定義分隔符福铅、前綴和后綴萝毛,請使用這些。如果您不想要前綴和后綴滑黔,則提供空字符串以不在結(jié)果字符串前后添加任何內(nèi)容笆包。
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);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
輸出:
Collectors.joining string : {One-Two-Three-Four-Five}
Collectors.joining string with @ separator : One@Two@Three@Four@Five
1
2
3
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);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
輸出:
StringUtils.join string with ^ delimiter : OneTwoThreeFourFive
StringUtils.join string with @ separator : OneThreeFive