Java中將List列表轉(zhuǎn)換為字符串的三種方法
引言
如何在 Java中將List 轉(zhuǎn)換為 String。接下來(lái)使用Java 8 Streams Collectors api和String.join()方法將帶有逗號(hào)分隔符或自定義分隔符的集合轉(zhuǎn)換為字符串。這種轉(zhuǎn)換是通過(guò)使用 java api 方法的簡(jiǎn)單步驟完成的。首先了解如何使用toString()方法將 List 轉(zhuǎn)換為 String,最后學(xué)習(xí)著名的 apache 庫(kù)命令StringUtils.join()方法。
對(duì)于所有示例,輸入列表必須是 String 作為L(zhǎng)ist類型,否則我們需要將非字符串轉(zhuǎn)換為 String。例如,List 是 Double 類型,然后需要先將 double 轉(zhuǎn)換為字符串。
使用標(biāo)準(zhǔn) toString() 方法
List.toString()是最簡(jiǎn)單的,但它在開(kāi)頭和結(jié)尾添加方括號(hào),每個(gè)字符串用逗號(hào)分隔符分隔。
缺點(diǎn)是我們不能用另一個(gè)分隔符替換逗號(hào),也不能去掉方括號(hào)。
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添加了一個(gè)特殊的方法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);
}
}
輸出:
String with tilde delimiter: One~Two~Three~Four~Five
String with pipe delimiter : One|Two|Three|Four|Five
Collectors.joining()
Collectors.join()方法來(lái)自 java 8 stream api。Collctors.joining()方法將分隔符、前綴和后綴作為參數(shù)。此方法將列表轉(zhuǎn)換為具有給定分隔符、前綴和后綴的字符串。
查看以下有關(guān)使用不同分隔符的 join() 方法的示例。但是,String.join() 方法不提供前綴和后綴選項(xiàng)。
如果您需要自定義分隔符、前綴和后綴,請(qǐng)使用這些。如果您不想要前綴和后綴,則提供空字符串以不在結(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);
}
}
輸出:
Collectors.joining string : {One-Two-Three-Four-Five}
Collectors.joining string with @ separator : One@Two@Three@Four@Five
Apache Commons StringUtils.join()
最后的方法是使用來(lái)自 apache commons 包的外部庫(kù)。該庫(kù)有一個(gè)方法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
結(jié)論
在本文中,我們已經(jīng)看到了在 java 8 之前和之后如何使用不同的方法在 java 中將 List 轉(zhuǎn)換為 String。對(duì)給定的分隔符使用 String.join() 方法從 List 生成字符串是很好的。或者,如果您想添加前綴或后綴,請(qǐng)使用帶有分隔符、前綴和后綴值的流 api Collectors.joining() 方法。
以上就是Java中將List列表轉(zhuǎn)換為字符串的三種方法的詳細(xì)內(nèi)容,更多關(guān)于Java List列表轉(zhuǎn)字符串的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java深入分析Iterator迭代器與foreach循環(huán)的使用
這篇文章主要介紹了Java-Iterator迭代器與foreach循環(huán),主要包括Iterator迭代器接口的操作方法和foreach?循環(huán)語(yǔ)法解析,需要的朋友可以參考下2022-05-05
MyBatis中select語(yǔ)句中使用String[]數(shù)組作為參數(shù)的操作方法
在 MyBatis 中,如何在 mapper.xml 配置文件中 select 語(yǔ)句中使用 String[] 數(shù)組作為參數(shù)呢,并且使用IN關(guān)鍵字來(lái)匹配數(shù)據(jù)庫(kù)中的記錄,這篇文章主要介紹了MyBatis中select語(yǔ)句中使用String[]數(shù)組作為參數(shù),需要的朋友可以參考下2023-12-12
EasyExcel自定義下拉注解的三種實(shí)現(xiàn)方式總結(jié)
使用EasyExcel設(shè)置下拉數(shù)據(jù)時(shí),每次都要?jiǎng)?chuàng)建一個(gè)SheetWriteHandler組件確實(shí)比較繁瑣,為了優(yōu)化這個(gè)過(guò)程,我們可以通過(guò)自定義注解來(lái)簡(jiǎn)化操作,下面就來(lái)看看具體實(shí)現(xiàn)方法吧2024-10-10
詳解SpringCloud使用Consul做注冊(cè)中心
這篇文章主要介紹了SpringCloud使用Consul做注冊(cè)中心,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
Java中數(shù)組容器(ArrayList)設(shè)的計(jì)與實(shí)現(xiàn)
本篇文章主要跟大家介紹我們最常使用的一種容器ArrayList、Vector的原理,并且自己使用Java實(shí)現(xiàn)自己的數(shù)組容器MyArrayList,讓自己寫的容器能像ArrayList那樣工作,感興趣的可以了解一下2022-07-07
Spring注解 TX聲明式事務(wù)實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了Spring注解 - TX 聲明式事務(wù)實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
Dubbo3和Spring?Boot整合過(guò)程源碼解析
Dubbo首先是提供了一個(gè)單獨(dú)的模塊來(lái)和Spring Boot做整合,利用 Spring Boot自動(dòng)裝配的功能,配置了一堆自動(dòng)裝配的組件,本文介紹Dubbo3和Spring?Boot整合過(guò)程,需要的朋友一起看看吧2023-08-08

