Выведите ArrayList в строку без появления [,] (скобки)

OK, поэтому у меня есть 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 в строке без скобок, чтобы я мог работать с он.

EDIT: следует отметить, что одна запятая в версии, которую я хочу, чтобы она выглядела, была помещена туда методом в другом классе:

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

EDIT 2: я смог найти полное решение, адаптировав два ответа, которые мне дали. Было трудно решить, какой из них" ответ", потому что я нашел оба варианта полезными, но выбрал тот, который мог использовать более избирательно.

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

чтобы снять скобки, которые я использовал измененный возврат. Удаление запятой потребовало от меня сосредоточиться на том, что каждая строка будет начинаться с "N", но недостатком этого подхода является то, что код сломается, если я забуду изменить его здесь, Если я изменю его там. Тем не менее, это решает мою конкретную проблему, и я всегда могу записать себе в обоих местах по мере необходимости.

6 ответов


вы можете попытаться заменить " ["и"] " на пустое пространство

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

можно напрямую преобразовать list / set в string и выполнить действие над ним

customers.toString().replace("[", "").replace("]", "")

возможные решения:

String account = Arrays.toString(accounts.toArray()); 
return account.substring(1,account.length()-1);

или вы переопределяете toString метод для возврата строки, как вы хотели.


Если вы хотите, чтобы ваш выходной, чтобы выглядеть: элемент1, место № 2, item3

Arrays.toString(customers.toArray()).replace('[', ' ').replace(']', ' ').trim()

Если вы хотите, чтобы ваш выходной, чтобы выглядеть: место № 1 место № 2 item3

Arrays.toString(customers.toArray()).replace('[', ' ').replace(']', ' ').replace(',', ' ').trim()

вы можете использовать метод substring() для удаления начальных и конечных скобок без изменения каких-либо записей в ArrayList. Я использовал что-то вроде этого для преобразования ArrayList<String> в строку

String str = list.toString().substring(1, list.toString().length() - 1);

вы можете переопределить метод toString () и представить вывод в любом формате