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

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

  • автор:

Преобразование массива int в строку в Java: toString

Превращение массива целочисленных значений int в строку в Java осуществляется с помощью метода Arrays.toString() из библиотеки java.util.Arrays . Этот метод создает строку, в которой все элементы массива представлены в упорядоченном виде, разделены запятыми и заключены в квадратные скобки.

Скопировать код

String arrayString = Arrays.toString(new int[]); // Результат: "[1, 2, 3]"

Пошаговый разбор

Метод Arrays.toString(int[]) является превосходным решением для преобразования массива целых чисел int в строковый тип String . Детально рассмотрим все этапы преобразования для начинающих программистов и опытных разработчиков.

Использование потоков Java 8 для форматирования массивов по своему усмотрению

В Java 8 были введены стримы, которые предоставляют обширные возможности для работы с коллекциями данных, включая индивидуализированное форматирование массивов int :

Скопировать код

String result = Arrays.stream(yourArray) .mapToObj(String::valueOf) .collect(Collectors.joining(", "));

Проверка массивов на null

В реальном мире случается, что массив может иметь значение null . В таких ситуациях метод Arrays.toString() вернет строку «null» , устраняя вероятность выброса исключения NullPointerException .

Очистка формата вывода

Бывают случаи, когда после обработки вашего массива в Java, полученный результат требуется корректировать. Для удаления лишних скобок, пробелов или запятых можно применить регулярные выражения (Regex):

Скопировать код

String cleanOutput = Arrays.toString(yourArray).replaceAll("\\[|\\]|,|\\s", "");

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

Скопировать код

String cleanOutput = Arrays.stream(yourArray) .mapToObj(String::valueOf) .collect(Collectors.joining());

Визуализация

Преобразование массива чисел int в строку String с использованием метода toString() в Java можно сравнить с составлением списка ингредиентов для блюда:

Скопировать код

int[] numbers = ; String textRepresentation = Arrays.toString(numbers); // Вуаля, готов список ингредиентов!

Углубление в тему

Особенности преобразования

Arrays.toString() работает таким образом, что каждый элемент массива int преобразуется в строку String с использованием метода String.valueOf(int) .

Отличие метода toString() у массивов

Метод toString() , применяемый непосредственно к массиву, не приведет к желаемому результату. Для получения правильного строкового представления массива лучше использовать Arrays.toString(array) .

Обратное преобразование к числам

Если вы захотите преобразовать результат обратно в числовое значение, для строк, состоящих только из цифр, можно использовать Long.parseLong(intStr) .

Кастомизация операций с помощью Stream

Java Streams предлагает ряд операций для большего контроля и настраиваемости преобразования элементов массива, включая фильтрацию, обработку и сбор данных.

Полезные материалы

  1. Arrays (Java Platform SE 7) — Официальная документация метода Arrays.toString() .
  2. What’s the simplest way to print a Java array? – Stack Overflow — Обсуждение простых способов печати массивов в Java в сообществе разработчиков.
  3. String (Java Platform SE 7) — Документация по методу String.valueOf() .
  4. IntStream (Java Platform SE 8) — Справка по работе со стримами и массивами int .
  5. Formatter (Java Platform SE 7) — Руководство по использованию класса Formatter .
  6. Overriding toString() Method in Java – GeeksforGeeks — Статья, объясняющая процедуру переопределения метода toString() для создания настроенной строки.

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

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

Мы можем добиться этого с помощью 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(""); 

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

Есть массив типа 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.4.30.8420

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

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

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

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

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