将ArrayList输出为String而不显示[,](括号)

Ell*_*der 12 java arrays string arraylist

好的,所以我有一个我需要作为String返回的ArrayList.现在我正在使用这种方法:

List<Customer> customers = new ArrayList<>();
List<Account> accounts = new ArrayList<>();


public String customerList() 
{
    String list = Arrays.toString(customers.toArray()); 
    return list;
}

public String accountList() 
{ 
    String account = Arrays.toString(accounts.toArray()); 
    return account;
}
Run Code Online (Sandbox Code Playgroud)

这很好用,但问题是我在文本周围有括号.我得到的东西像:

 Customer list:
 --------------
 [Name: Last, First
 , Name: Last, First
 , Name: Last, First
 ]
Run Code Online (Sandbox Code Playgroud)

当我想要这样的事情时:

 Customer list:
 --------------
 Name: Last, First
 Name: Last, First
 Name: Last, First
Run Code Online (Sandbox Code Playgroud)

但是,与类似的问题不同,我不只是想逐行输出.我需要将ArrayList存储在没有括号的String中,以便我可以使用它.

编辑:应该注意的是,我希望它看起来像版本中的一个逗号是由一个不同的类中的方法放在那里:

public final String getName()  
    { 
        return getLast() + ", " + getFirst(); 
    }
Run Code Online (Sandbox Code Playgroud)

编辑2:通过调整我给出的两个答案,我找到了一个完整的解决方案.决定哪个是"答案"很困难,因为我发现它们都很有用,但是我选择了更有用的那个.

public String customerList() 
{
    String list = Arrays.toString(customers.toArray()).replace(", N", "N").replace(", N", "N");
    return list.substring(1,list.length()-1);
}
Run Code Online (Sandbox Code Playgroud)

要删除括号,我使用了修改后的返回.删除逗号需要我专注于每一行都以"N"开头的事实,但这种方法的缺陷是,如果我在这里忘记更改它,如果我忘记在此处更改代码就会中断.不过,它解决了我的具体问题,我总是可以根据需要在两个地方对自己进行评论.

bma*_*ham 24

您可以尝试用空格替换'['和']'

String list = Arrays.toString(customers.toArray()).replace("[", "").replace("]", "");
Run Code Online (Sandbox Code Playgroud)


Dav*_*czo 9

我认为打印不带括号且不带任何分隔符的列表的最佳解决方案(对于 java 8 及更高版本)

String.join("", YOUR_LIST);
Run Code Online (Sandbox Code Playgroud)

您还可以添加自己的分隔符来分隔打印元素。

String.join(", \n", YOUR_LIST);
Run Code Online (Sandbox Code Playgroud)

上面的示例用逗号和换行符分隔每个列表元素。


yej*_*lue 5

Java 8 版本

List<Integer> intList = new ArrayList<Integer>();
intList.add(1);
intList.add(2);
intList.add(4);
System.out.println(intList.stream().map(i -> i.toString()).collect(Collectors.joining(",")));
Run Code Online (Sandbox Code Playgroud)

输出:1,2,4