Java коллекции (убрать скобки на выходе)

285
26 июля 2017, 21:13

Создал коллекцию, внес данные, на выходе получаю:

[1, 2, 3, 4]

Вопрос, как убрать [] или заменить на () или не учитывать?

Такое вообще реально?

Answer 1

Пусть есть коллекция:

List<Integer> integerList = Arrays.asList(1, 2, 3);

Для вывода ее содержимого без скобок:

  1. Можно удалить скобки:

    System.out.println(integerList.toString().replaceAll("^\\[|\\]$", ""));
  2. Можно вывести содержимое в цикле:

    for(int i=0; i<integerList.size(); i++) {
        System.out.print(i);
        if (i+1 != integerList.size()) {
            System.out.print(", ");
        }
    }
  3. Можно отнаследоваться от необходимого класса и переопределить метод toString().

И много чего еще можно придумать.

Answer 2

Чтобы записать в строку можно использовать String.join()

    String[] array = new String[] { "a", "b", "c" };
    String joined2 = String.join(",", array);
Answer 3

Можно проще и современней. Используйте лямбда-выражение:

List<Integer> array = Arrays.asList(1, 2, 3, 4, 5);
array.forEach(value -> System.out.println(value));

Только вывод под свои нужды настройте...

Answer 4

Можно заменить скобки вот так:

String result = Arrays.toString(collection) // collection - ваша коллекция
     .replace("[", "")  // удалим скобку (можно заменить на "(")
     .replace("]", ""); // удалим скобку (можно заменить на ")")

Ну и распечатаь полученную в result строку:

System.out.println(result);

Либо пройти по коллекции и распечать каждый отдельно, без перехода на новую строку:

for (int index = 0; index < collection.length; index++) {
   System.out.print(collection[index] + (index != collection.length - 1 ? ", " : ""));
}
READ ALSO
Разделение тестов на группы с junit

Разделение тестов на группы с junit

У меня есть проект с использованием spring boot

199
Добавить библиотеку Google Play Services в AIDE (libGDX)

Добавить библиотеку Google Play Services в AIDE (libGDX)

Добрый день, есть необходимость добавить рекламу в проект, через Gradle это можно было сделать в 1 строчку, но как быть с libGDX без понятия, пробовал...

367
Проблема с Android Manifest

Проблема с Android Manifest

На другом компьютере создал проект в libGDXПлатформы выбрал Android и Desktop

282