在Java中将ArrayList转换为逗号分隔的字符串
ArrayList是Java中 集合框架 的一部分,位于java.util包中。它为我们提供了Java中的动态数组。为了将ArrayList转换为逗号分隔的字符串,在Java中可用以下方法:
在Java 8之前,只有标准方法可用以进行此转换,但随着流和Lambda概念的引入,新的方法也应运而生,这些方法都在下面列出:
- 使用StringBuilder的append()方法
- 使用toString()方法
- 使用Apache Commons StringUtils类
- 使用Stream API
- 使用String类的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转换为一个字符串。该方法返回单个字符串,对该字符串应用replace方法并替换指定的字符(在这种情况下是括号和空格)。
语法:
arraylist.toString()
//arraylist是ArrayList类的对象
返回值: 它返回ArrayList的字符串表示形式
示例:
// Java程序,用于将ArrayList转换为
// 逗号分隔字符串
// 使用toString()方法
// 导入所需的类
import java.util.ArrayList;
// 主类
public class GFG {
// 主驱动程序方法
public static void main(String[] args)
{
// 创建一个空的字符串类型的ArrayList
ArrayList<String> geekcourses
= new ArrayList<String>();
// 使用add()方法将元素添加到上述空ArrayList中
geekcourses.add("数据结构");
geekcourses.add("算法");
geekcourses.add("操作系统");
geekcourses.add("计算机网络");
geekcourses.add("机器学习");
geekcourses.add("数据库");
// 注意:toString()方法返回的输出为
// [Data Structure,Algorithms,...]
// 为了用空字符串替换'[', ']'和空格以获取逗号分隔的值
String commaseparatedlist = geekcourses.toString();
commaseparatedlist
= commaseparatedlist.replace("[", "")
.replace("]", "")
.replace(" ", "");
// 打印逗号分隔的字符串
System.out.println(commaseparatedlist);
}
}
输出
数据结构、算法、操作系统、计算机网络、机器学习、数据库
方法3:使用Apache Commons StringUtils类
Apache Commons库具有 StringUtils 类,为字符串提供了实用函数。 join方法用于将ArrayList转换为逗号分隔的字符串。
示例:
// Java程序,用于将ArrayList转换为
// 逗号分隔字符串
// 使用Apache Commons StringUtils类
// 导入所需的类
import java.util.ArrayList;
import org.apache.commons.collections4.CollectionUtils;
// 主类
public class GFG {
// 主驱动程序方法
public static void main(String[] args)
{
// 创建一个空的字符串类型的ArrayList
ArrayList<String> geekcourses
= new ArrayList<String>();
// 使用add()方法将元素添加到ArrayList中
geekcourses.add("数据结构");
geekcourses.add("算法");
geekcourses.add("操作系统");
geekcourses.add("计算机网络");
geekcourses.add("机器学习");
geekcourses.add("数据库");
// Mote:使用的join()方法返回单个字符串
// 每次迭代都有定义的分隔符
String commalist
= StringUtils.join(geekcourses, ",");
// 打印逗号分隔的字符串
System.out.println(commalist);
}
}
输出:
数据结构、算法、操作系统、计算机网络、机器学习、数据库
方法4:使用Stream API
Stream API在Java 8中引入,用于处理对象集合。 Java中Collectors类的joining()方法用于将字符或字符串数组的各个元素连接到单个字符串对象中。
示例
// 把ArrayList转换为逗号分隔的字符串的Java程序
// 使用Stream API
// 导入所需类
import java.util.*;
import java.util.stream.Collectors;
// 主类
public class GFG {
// 主方法
public static void main(String[] args)
{
// 创建一个空的字符串类型的ArrayList
ArrayList<String> geeklist
= new ArrayList<String>();
// 使用add()方法向上述ArrayList添加元素
geeklist.add("welcome");
geeklist.add("to");
geeklist.add("geeks");
geeklist.add("for");
geeklist.add("geeks");
// collect()方法返回在流上执行的中间操作的结果
String str = geeklist.stream().collect(
Collectors.joining(","));
// 打印逗号分隔的字符串
System.out.println(str);
}
}
输出
welcome,to,geeks,for,geeks
方法5: 使用String类的join()方法
我们可以使用StringJoiner将ArrayList转换为逗号分隔的字符串,StringJoiner是java.util包中的一个类,它用于构造一个由分隔符分隔的字符序列(字符串),并且可以选择以提供的前缀开头,以提供的后缀结尾。 String类的join()方法也可以用来构造相同的结果。
例子
// Java程序将ArrayList转换为逗号分隔的字符串
// 使用String join()方法
// 导入所需类
import java.util.*;
import java.util.stream.Collectors;
// 主类
public class GFG {
// 主方法
public static void main(String[] args)
{
// 创建一个空的字符串类型的ArrayList
ArrayList<String> geeklist
= new ArrayList<String>();
// 使用add()方法向ArrayList添加元素
geeklist.add("welcome");
geeklist.add("to");
geeklist.add("geeks");
geeklist.add("for");
geeklist.add("geeks");
// 注意: String.join()与列表一起使用
// 使用逗号作为分隔符
String str = String.join(",", geeklist);
// 打印逗号分隔的字符串
System.out.println(str);
}
}
输出
welcome,to,geeks,for,geeks
极客教程