Как вывести массив в строку java
Перейти к содержимому

Как вывести массив в строку java

  • автор:

Массив строк Java в строку

Сегодня мы рассмотрим, как преобразовать массив строк Java в строку. Иногда нам нужно преобразовать массив String в String для определенных требований. Например; мы хотим зарегистрировать содержимое массива или нам нужно преобразовать значения массива String в String и вызвать другие методы.

Массив строк Java в строку

В большинстве случаев мы вызываем метод toString() объекта, чтобы получить строковое представление. Давайте посмотрим, что происходит, когда мы вызываем метод toString() для массива строк в java.

package com.journaldev.util; public class JavaStringArrayToString < public static void main(String[] args) < String[] strArr = new String[] ; String str = strArr.toString(); System.out.println("Java String array to String = "+str); > > 

public String toString()

Пример массива строк Java в строку

Итак, как преобразовать массив строк в строку в java. Мы можем использовать метод Arrays.toString , который вызывает метод toString() для отдельных элементов и использовать StringBuilder для создания строки.

public static String toString(Object[] a) < if (a == null) return "null"; int iMax = a.length - 1; if (iMax == -1) return "[]"; StringBuilder b = new StringBuilder(); b.append('['); for (int i = 0; ; i++) < b.append(String.valueOf(a[i])); if (i == iMax) return b.append(']').toString(); b.append(", "); >> 

Мы также можем создать собственный метод для преобразования массива String в String, если у нас есть определенные требования к формату. Ниже приведена простая программа, показывающая эти методы в действии и полученные результаты.

package com.journaldev.util; import java.util.Arrays; public class JavaStringArrayToString < public static void main(String[] args) < String[] strArr = new String[] < "1", "2", "3" >; String str = Arrays.toString(strArr); System.out.println("Java String array to String = " + str); str = convertStringArrayToString(strArr, ","); System.out.println("Convert Java String array to String = " + str); > private static String convertStringArrayToString(String[] strArr, String delimiter) < StringBuilder sb = new StringBuilder(); for (String str : strArr) sb.append(str).append(delimiter); return sb.substring(0, sb.length() - 1); >> 

Пример массива Java в строку

Теперь давайте расширим наш массив String до примера String для использования с любыми другими пользовательскими классами, вот реализация.

package com.journaldev.util; import java.util.Arrays; public class JavaArrayToString < public static void main(String[] args) < A[] arr = < new A("1"), new A("2"), new A("3") >; // default toString() method System.out.println(arr.toString()); // using Arrays.toString() for printing object array contents System.out.println(Arrays.toString(arr)); // converting Object Array to String System.out.println(convertObjectArrayToString(arr, ",")); > private static String convertObjectArrayToString(Object[] arr, String delimiter) < StringBuilder sb = new StringBuilder(); for (Object obj : arr) sb.append(obj.toString()).append(delimiter); return sb.substring(0, sb.length() - 1); >> class A < private String name; public A(String name) < this.name = name; >@Override public String toString() < System.out.println("A toString() method called!!"); return this.name; >> 

Вывод, созданный приведенным выше примером программы java array to String:

[Lcom.journaldev.util.A;@7852e922 A toString() method called!! A toString() method called!! A toString() method called!! [1, 2, 3] A toString() method called!! A toString() method called!! A toString() method called!! 1,2,3 

Итак, мы рассмотрели, как преобразовать массив Java String в String, а затем расширили его для использования с настраиваемыми объектами. Это все, что нужно для преобразования массива Java в строку.

Вы можете проверить больше основных примеров Java из нашего репозитория GitHub.

Ссылка: Java Arrays toString API Doc

вывод массива в одну строку

Есть массив типа String нужно вывести значения массива в одну строку через запятую Пример: молоко, мясо, хлеб как это можно сделать? Пытался с System.out.println(res.replaceAll () но не понимаю как убрать []

Отслеживать
задан 12 фев 2020 в 17:08
47 1 1 серебряный знак 4 4 бронзовых знака

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

 String[] strArray = < "молоко", "мясо", "хлеб" >; System.out.println(String.join(", ", strArray)); 

Отслеживать
ответ дан 12 фев 2020 в 17:12
user176262 user176262
спасибо. Не видел такой метод)
12 фев 2020 в 17:18
@AmoRa Пожалуйста. Знак «галочка» — слева от ответа.
– user176262
12 фев 2020 в 22:23

С помощью метода print(x,+» ,»)

Отслеживать
ответ дан 12 фев 2020 в 17:12
1 2 2 бронзовых знака
тогда будет лишняя запятая в конце
12 фев 2020 в 17:16

    Важное на Мете
Связанные
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.3.1.5619

Как массив перевести в строку java

Чтобы в java перевести массив в строку, можно использовать статический метод join() класса String , который соединяет элементы массива. В итоговой строке элементы массива разделяются при помощи переданного первым параметром разделителя

String[] words = ["Hello", "World"]; // Разделитель может быть пустой строкой String.join("", words); // "HelloWorld" String.join(", ", words); // "Hello, World" 

Преобразование массива в строку

В этом коротком руководстве мы рассмотрим преобразование массива строк или целых чисел в строку и обратно.

Мы можем добиться этого с помощью vanilla Java и служебных классов Java из часто используемых библиотек.

2. Преобразовать массив в строку​

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

Реализация метода toString() по умолчанию для массива возвращает что-то вроде Ljava.lang.String;@74a10858 , что информирует нас только о типе объекта и хэш-коде.

Однако служебный класс java.util.Arrays поддерживает работу с массивами и строками, включая метод toString() для массивов.

Arrays.toString() возвращает строку с содержимым входного массива. Новая созданная строка представляет собой список элементов массива, разделенных запятыми, заключенных в квадратные скобки («[]»):

 String[] strArray =  "one", "two", "three" >;   String joinedString = Arrays.toString(strArray);   assertEquals("[one, two, three]", joinedString); 
 int[] intArray =  1,2,3,4,5 >;  joinedString = Arrays.toString(intArray);   assertEquals("[1, 2, 3, 4, 5]", joinedString); 

И хотя это здорово, что метод Arrays.toString(int[]) так хорошо решает эту задачу, давайте сравним его с другими методами, которые мы можем реализовать самостоятельно.

2.1. StringBuilder.append() ​

Для начала давайте посмотрим, как сделать это преобразование с помощью StringBuilder.append() :

 String[] strArray =  "Convert", "Array", "With", "Java" >;   StringBuilder stringBuilder = new StringBuilder();   for (int i = 0; i  strArray.length; i++)    stringBuilder.append(strArray[i]);   >   String joinedString = stringBuilder.toString();   assertEquals("ConvertArrayWithJava", joinedString); 

Кроме того, для преобразования массива целых чисел мы можем использовать тот же подход, но вместо этого вызывать Integer.valueOf(intArray[i]) при добавлении к нашему StringBuilder .

2.2. API потоков Java​

Java 8 и выше предлагает метод String.join() , который создает новую строку, объединяя элементы и разделяя их указанным разделителем, в нашем случае это просто пустая строка:

 String joinedString = String.join("", new String[] "Convert", "With", "Java", "Streams" >);   assertEquals("ConvertWithJavaStreams", joinedString); 

Кроме того, мы можем использовать метод Collectors.joining() из Java Streams API, который объединяет строки из Stream в том же порядке, что и его исходный массив:

 String joinedString = Arrays   .stream(new String[] "Convert", "With", "Java", "Streams" >)   .collect(Collectors.joining());   assertEquals("ConvertWithJavaStreams", joinedString); 

2.3. StringUtils.join() ​

И Apache Commons Lang никогда не должен оставаться в стороне от таких задач.

Класс StringUtils имеет несколько методов StringUtils.join() , которые можно использовать для преобразования массива строк в одну строку:

 String joinedString = StringUtils.join(new String[] "Convert", "With", "Apache", "Commons" >);   assertEquals("ConvertWithApacheCommons", joinedString); 

2.4. Столяр.присоединиться() ​

И чтобы не отставать, Guava приспосабливает то же самое к своему классу Joiner . Класс Joiner предлагает гибкий API и предоставляет несколько вспомогательных методов для объединения данных.

Например, мы можем добавить разделитель или пропустить нулевые значения:

 String joinedString = Joiner.on("")   .skipNulls()   .join(new String[] "Convert", "With", "Guava", null >);   assertEquals("ConvertWithGuava", joinedString); 

3. Преобразование строки в массив строк​

Точно так же нам иногда нужно разбить строку на массив, содержащий некоторое подмножество входной строки, разделенное указанным разделителем, давайте посмотрим, как мы можем это сделать.

3.1. Строка.split() ​

Во-первых, давайте начнем с разделения пробела с помощью метода String.split() без разделителя:

 String[] strArray = "loremipsum".split(""); 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *