在Java中将ArrayList转换为逗号分隔的字符串

在Java中将ArrayList转换为逗号分隔的字符串

ArrayList是Java中 集合框架 的一部分,位于java.util包中。它为我们提供了Java中的动态数组。为了将ArrayList转换为逗号分隔的字符串,在Java中可用以下方法:

Java 8之前,只有标准方法可用以进行此转换,但随着流和Lambda概念的引入,新的方法也应运而生,这些方法都在下面列出:

  1. 使用StringBuilder的append()方法
  2. 使用toString()方法
  3. 使用Apache Commons StringUtils类
  4. 使用Stream API
  5. 使用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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程