В этом руководстве содержатся примеры Java для объединения или конкатенации массива строк для создания одной строки с использованием разделителя-запятой, где элементы будут разделены заданным разделителем. Этот код можно использовать для преобразования массива в строку, разделенную запятыми, в Java.
Эта информация может понадобиться нам много раз в процессе разработки, особенно при анализе содержимого файлов JSON или XML.
1. Java 8 – Использование String.join()
Метод String.join() имеет две перегруженные формы.
- Первая версия объединяет несколько строковых литералов, предоставленных как var-args.
- Вторая версия объединяет строки, представленные в списке или массиве.
Обратите внимание: если элемент имеет значение null, то к объединенной строке добавляется «null».
static String join(CharSequence delimiter, CharSequence... elements)static String join(CharSequence delimiter, Iterable<? extends CharSequence> elements)
1.1. Объединение строковых литералов
Этот метод принимает все строки в формате var-args, и все строки передаются в качестве аргументов в методе. Возвращаемая строка получается путем добавления всех строк, разделенных разделителем аргументов.
Этот метод может объединять несколько строковых литералов, которые еще не объединены в форму коллекции или массива.
String joinedString = String.join(",", "How", "To", "Do", "In", "Java"); //How,To,Do,In,Java
1.2. Объединение массива или списка строк
Мы можем использовать этот метод для объединения строковых элементов в массиве и получения объединенной строки.
String[] strArray = { "How", "To", "Do", "In", "Java" };String joinedString = String.join(",", strArray); //How,To,Do,In,Java
2. Java 8 – Использование StringJoiner для форматированного вывода
Используя класс StringJoiner, мы можем производить форматированный вывод объединенных строк. Это особенно полезно при использовании лямбда-сборщиков.
2.1 Синтаксис метода
Конструкторы принимают три аргумента – разделитель [обязательно] и необязательные префикс и суффикс.
StringJoiner(CharSequence delimiter)StringJoiner(CharSequence delimiter, CharSequence prefix, CharSequence suffix)
2.2 Пример StringJoiner
Запустите пример с похожим вводом, как в примере выше, чтобы объединить несколько строк. Мы хотим отформатировать вывод как [How, To, Do, In, Java], тогда мы можем использовать следующий код:
StringJoiner joiner = new StringJoiner("," ,"[", "]");String joinedString = joiner.add("How").add("To").add("Do").add("In").add("Java").toString();System.out.println(joinedString); //[How,To,Do,In,Java]
3. Java 8 – Использование Collectors.joining() для потоков
При использовании лямбда-выражений мы можем использовать Collectors.joining() для сбора элементов списка в строку.
List<String> tokens = Arrays.asList("How", "To", "Do", "In", "Java");String joinedString = tokens.stream().collect(Collectors.joining(",", "[", "]"));System.out.println(joinedString); //[How,To,Do,In,Java]
4. Apache Commons – использование StringUtils.join()
Класс StringUtils библиотеки Apache Commons Langs имеет несколько методов join(), которые можно использовать для объединения массива или списка строк в одну строку.
<dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.12.0</version></dependency>
См. приведенные примеры.
- В первом примере мы объединяем массив строк с пустым разделителем.
- Во втором примере мы объединяем массив строк с помощью запятой-разделителя.
String[] strArray = { "How", "To", "Do", "In", "Java" };String joinedString = StringUtils.join(strArray);System.out.println(joinedString); //HowToDoInJavaString joinedString2 = StringUtils.join(strArray, ",");System.out.println(joinedString2); //How,To,Do,In,Java
Используйте приведенные выше примеры для объединения строк с запятой или любым другим разделителем в Java.