Преобразование массива 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 предлагает ряд операций для большего контроля и настраиваемости преобразования элементов массива, включая фильтрацию, обработку и сбор данных.
Полезные материалы
- Arrays (Java Platform SE 7) — Официальная документация метода Arrays.toString() .
- What’s the simplest way to print a Java array? – Stack Overflow — Обсуждение простых способов печати массивов в Java в сообществе разработчиков.
- String (Java Platform SE 7) — Документация по методу String.valueOf() .
- IntStream (Java Platform SE 8) — Справка по работе со стримами и массивами int .
- Formatter (Java Platform SE 7) — Руководство по использованию класса Formatter .
- 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"