将 ArrayList 输出到字符串而不显示 [,](括号)

2022-09-02 02:20:18

好的,所以我有一个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;
}

这工作正常,但问题是我在文本周围有括号。我得到的东西是这样的:

 Customer list:
 --------------
 [Name: Last, First
 , Name: Last, First
 , Name: Last, First
 ]

当我想要这样的东西时:

 Customer list:
 --------------
 Name: Last, First
 Name: Last, First
 Name: Last, First

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

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

public final String getName()  
    { 
        return getLast() + ", " + getFirst(); 
    }

编辑2:我能够通过调整我得到的两个答案来找到一个完整的解决方案。很难决定哪个是“答案”,因为我发现两者都很有用,但是选择了我可以更有选择性地使用的那个。

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

为了删除括号,我使用了修改后的回车符。删除逗号需要我专注于每行都将以“N”开头的事实,但是这种方法的缺陷是,如果我忘记在此处更改它,代码就会中断,如果我在那里更改它。尽管如此,它还是解决了我的具体问题,我总是可以根据需要在两个地方给自己打注。


答案 1

您可以尝试将“[”和“]”替换为空格

String list = Arrays.toString(customers.toArray()).replace("[", "").replace("]", "");

答案 2

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(",")));

输出: 1,2,4