Java ArrayList到以逗号分隔的字符串

Java ArrayList到以逗号分隔的字符串,java,Java,我有一个ArrayList,我想完全以字符串形式输出,以逗号分隔 我的代码是 ArrayList<String> list = new ArrayList<String>(); list.add("one"); list.add("two"); list.add("three"); String listString = ""; for (String s : list) { listString += s + ","; } System.out.print

我有一个
ArrayList
,我想完全以字符串形式输出,以
逗号分隔

我的代码是

ArrayList<String> list = new ArrayList<String>();
list.add("one");
list.add("two");
list.add("three");

String listString = "";

for (String s : list)
{
    listString += s + ",";
}

System.out.println(listString);
ArrayList list=new ArrayList();
列表。添加(“一”);
列表。添加(“两个”);
列表。添加(“三”);
字符串listString=“”;
用于(字符串s:列表)
{
listString+=s+“,”;
}
System.out.println(listString);
但是输出是
one,two,three,
,我希望
one,two,three
不使用
replace方法

我正在使用
JAVA

import JAVA.util.*;
import java.util.*;
import java.lang.*;
import java.io.*;

/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
    public static void main (String[] args) throws java.lang.Exception
    {
        ArrayList<String> list = new ArrayList<String>();
        list.add("one");
        list.add("two");
        list.add("three");

        String listString = "";

        for (int i=0;i<list.size()-1;i++)
            listString += list.get(i) + ",";

        System.out.println(listString+list.get(list.size()-1));
    }
}
导入java.lang.*; 导入java.io.*; /*只有当类是公共的时,类的名称才必须是“Main”*/ 表意文字 { 公共静态void main(字符串[]args)引发java.lang.Exception { ArrayList=新建ArrayList(); 列表。添加(“一”); 列表。添加(“两个”); 列表。添加(“三”); 字符串listString=“”;
对于(inti=0;i在Java8+中,您可以使用(并且您可以使用来初始化
列表)

List<String> list = Arrays.asList("one", "two", "three");
StringJoiner sj = new StringJoiner(",");
for (String s : list) {
    sj.add(s);
}
System.out.println(sj.toString());

只需使用
String.substring

listString = listString.substring(0, listString.length() - 1);

您可以使用java.util.StringJoiner,而不是列表:

    StringJoiner joiner = new StringJoiner(",");
    joiner.add("one");
    joiner.add("two"),
    joiner.add("three");

    String listString = joiner.toString();

如果你不使用Java8,那么考虑使用String Bu建器。那么你最后的字符串可以是:

System.out.println(listString.substring(0, listString.length() - 1));
使用Java 8:

List<String> list = Arrays.asList(array);
String joinedString = String.join(",", list);
List List=Arrays.asList(array);
String joinedString=String.join(“,”列表);

对于Java 8之前的解决方案,因为默认的
toString()
提供了
[1,2,3]

String s = list.toString();
s = s.substring(1, s.length()-1);
试一试


listString+=(listString.isEmpty()?:“,”)+s;
。请注意,您应该使用
StringBuilder
,而不是直接连接。@AndyTurner如何对同一个字符串使用StringBuilder?String类有一个名为join的方法,这样您就不必在集合中迭代来连接元素。文档
String s = list.toString();
s = s.substring(1, s.length()-1);
list.toString().replace("[", "").replace("]", "");