Java 把数组列表转换为逗号分隔的字符串
ArrayList是集合框架的一部分,存在于java.util包中。它为我们提供了Java中的动态数组。为了将ArrayList转换为逗号分隔的字符串,下面列出了Java中可用的方法,建议如下。
在Java 8之前,只有标准的方法可以进行这种转换,但随着Streams和Lambda概念的引入,新的方法也开始发挥作用,下面列出了所有这些方法。
1.使用StringBuilder的append()方法
2.使用toString()方法
3.使用Apache Commons的StringUtils类
4.使用流API
5.使用字符串类的join()方法
让我们讨论上述提出的每一种方法,与方案一起深入探讨,以获得深层次的理解,如下。
方法1:使用StringBuilder的append()方法
java中的StringBuilder表示一个可变的字符序列。在下面的例子中,我们使用了StringBuilder的append()方法。append方法是用来在现有字符串的最后一个位置连接或添加一组新的字符。
语法:
public StringBuilder append(char a)
参数: 该方法接受一个单一的参数a,它是Char值,其字符串表示将被附加。
返回值: 该方法在执行完追加操作后返回一个字符串对象。
示例:
// Java program to Convert ArrayList to
// Comma Separated String
// Using append() method of StringBuilder
// Importing required classes
import java.util.ArrayList;
// Main class
public class GFG {
// Main driver method
public static void main(String[] args)
{
// Creating an empty ArrayList of string type
ArrayList<String> geeklist
= new ArrayList<String>();
// Adding elements to ArrayList
// using add() method
geeklist.add("Hey");
geeklist.add("Geek");
geeklist.add("Welcome");
geeklist.add("to");
geeklist.add("geeksforgeeks");
geeklist.add("!");
StringBuilder str = new StringBuilder("");
// Traversing the ArrayList
for (String eachstring : geeklist) {
// Each element in ArrayList is appended
// followed by comma
str.append(eachstring).append(",");
}
// StringBuffer to String conversion
String commaseparatedlist = str.toString();
// Condition check to remove the last comma
if (commaseparatedlist.length() > 0)
commaseparatedlist
= commaseparatedlist.substring(
0, commaseparatedlist.length() - 1);
// Printing the comma separated string
System.out.println(commaseparatedlist);
}
}
输出
Hey,Geek,Welcome,to,geeksforgeeks,!
方法2:使用toString()方法
toString() 是一个内置的方法,以字符串格式返回给它的值。下面的代码使用toString()方法将ArrayList转换为一个字符串。该方法返回单一的字符串,在该字符串上应用替换方法,指定的字符被替换(在此情况下是括号和空格)。
语法:
arraylist.toString()
// arraylist is an object of the ArrayList class
返回值: 它返回ArrayList的一个字符串表示。
示例:
// Java Program to Convert ArrayList to
// Comma Separated String
// Using toString() method
// Importing required classes
import java.util.ArrayList;
// Main class
public class GFG {
// Main driver method
public static void main(String[] args)
{
// Creating an empty ArrayList of string type
ArrayList<String> geekcourses
= new ArrayList<String>();
// Adding elements to above empty ArrayList
// using add() method
geekcourses.add("Data Structures");
geekcourses.add("Algorithms");
geekcourses.add("Operating System");
geekcourses.add("Computer Networks");
geekcourses.add("Machine Learning");
geekcourses.add("Databases");
// Note: toString() method returns the output as
// [Data Structure,Algorithms,...]
// In order to replace '[', ']' and spaces with
// empty strings to get comma separated values
String commaseparatedlist = geekcourses.toString();
commaseparatedlist
= commaseparatedlist.replace("[", "")
.replace("]", "")
.replace(" ", "");
// Printing the comma separated string
System.out.println(commaseparatedlist);
}
}
输出
DataStructures,Algorithms,OperatingSystem,ComputerNetworks,MachineLearning,Databases
方法3: 使用Apache Commons的StringUtils类
Apache Commons库有一个StringUtils类,为字符串提供了一个实用的函数。join方法是用来将ArrayList转换为逗号分隔的字符串。
示例:
// Java program to Convert ArrayList to
// Comma Separated String
// Using Apache Commons StringUtils class
// Importing required classes
import java.util.ArrayList;
import org.apache.commons.collections4.CollectionUtils;
// Main class
public class GFG {
// Main driver method
public static void main(String[] args)
{
// Creating an empty ArrayList of string type
ArrayList<String> geekcourses
= new ArrayList<String>();
// Adding elements to ArrayList
// using add() method
geekcourses.add("Data Structures");
geekcourses.add("Algorithms");
geekcourses.add("Operating System");
geekcourses.add("Computer Networks");
geekcourses.add("Machine Learning");
geekcourses.add("Databases");
// Mote: join() method used returns a single string
// along with defined separator in every iteration
String commalist
= StringUtils.join(geekcourses, ",");
// Printing the comma separated string
System.out.println(commalist);
}
}
输出:
OutputDataStructures,Algorithms,OperatingSystem,ComputerNetworks,MachineLearning,Databases
方法4:使用流API
Stream API是在Java 8中引入的,用于处理对象的集合。在Java中,收集器类的join()方法用于将一个字符或字符串数组的各种元素连接成一个字符串对象。
示例
// Java Program to Convert ArrayList to
// Comma Separated String
// Using Stream API
// Importing required classes
import java.util.*;
import java.util.stream.Collectors;
// Main class
public class GFG {
// Main driver method
public static void main(String[] args)
{
// Creating an empty ArrayList of string type
ArrayList<String> geeklist
= new ArrayList<String>();
// Adding elements to above ArrayList
// using add() method
geeklist.add("welcome");
geeklist.add("to");
geeklist.add("geeks");
geeklist.add("for");
geeklist.add("geeks");
// collect() method returns the result of the
// intermediate operations performed on the stream
String str = geeklist.stream().collect(
Collectors.joining(","));
// Printing the comma separated string
System.out.println(str);
}
}
输出
welcome,to,geeks,for,geeks
方法5:使用字符串类的join()方法
我们可以使用StringJoiner将ArrayList转换为逗号分隔的字符串,StringJoiner是java.util包中的一个类,用于构建由分隔符分隔的字符(字符串)序列,并且可以选择以提供的前缀开始,以提供的后缀结束。String类的join()方法可以用来构建同样的字符串。
示例
// Java program to Convert ArrayList to
// Comma Separated String
// Using String join() method
// Importing required classes
import java.util.*;
import java.util.stream.Collectors;
// Main class
public class GFG {
// Main driver method
public static void main(String[] args)
{
// Creating an empty ArrayList of string type
ArrayList<String> geeklist
= new ArrayList<String>();
// Adding elements to ArrayList
// using add() method
geeklist.add("welcome");
geeklist.add("to");
geeklist.add("geeks");
geeklist.add("for");
geeklist.add("geeks");
// Note: String.join() is used with a delimiter
// comma along with the list
String str = String.join(",", geeklist);
// Printing the comma separated string
System.out.println(str);
}
}
输出
welcome,to,geeks,for,geeks