Преобразование массива в строку
В этом коротком уроке мы рассмотрим преобразование массива строк или целых чисел в строку и обратно.
Мы можем добиться этого с помощью обычных Java и служебных классов Java из часто используемых библиотек.
2. Преобразовать массив в строку
Иногда нам нужно преобразовать массив строк или целых чисел в строку, но, к сожалению, прямого метода для этого преобразования не существует.
Реализация по умолчанию методаtoString() в массиве возвращает что-то вродеLjava.lang.String;@74a10858, которое только информирует нас о типе объекта и хэш-коде.
Однако служебный классjava.util.Arrays поддерживает манипуляции с массивами и строками, включая методtoString() для массивов.
Arrays.toString() returns a string with the content of the input array. Созданная новая строка представляет собой список элементов массива, разделенных запятыми и заключенный в квадратные скобки («[]»):
И хотя замечательно, что методArrays.toString(int[]) так хорошо справляется с этой задачей, давайте сравним его с различными методами, которые мы можем реализовать самостоятельно.
2.1. StringBuilder.append()с
Для начала давайте посмотрим, как выполнить это преобразование с помощьюStringBuilder.append():
Кроме того, чтобы преобразовать массив целых чисел, мы можем использовать тот же подход, но вместо этого вызываемInteger.valueOf(intArray[i]) when, добавляя его к нашемуStringBuilder.
2.2. API Java Streams
Java 8 и выше предлагает методString.join(), который создает новую строку, объединяя элементы и разделяя их указанным разделителем, в нашем случае просто пустой строкой:
Кроме того, мы можем использовать методCollectors.joining() из Java Streams API, который объединяет строки изStream в том же порядке, что и его исходный массив:
2.3. StringUtils.join()с
ИApache Commons Lang никогда не должен оставаться в стороне от подобных задач.
КлассStringUtils имеет несколько методовStringUtils.join(), которые можно использовать для преобразования массива строк в одну строку:
2.4. Joiner.join()с
И чтобы не отставать,Guava использует то же самое со своим классомJoiner . КлассJoiner предлагает свободный API и несколько вспомогательных методов для объединения данных.
Например, мы можем добавить разделитель или пропустить нулевые значения:
3. Преобразовать строку в массив строк
Точно так же нам иногда нужно разбить строку на массив, который содержит некоторое подмножество входной строки, разделенное указанным разделителем, давайте посмотрим, как мы можем это сделать.
3.1. String.split()с
Во-первых, давайте начнем с разделения пробелов с помощью методаString.split() без разделителя:
3.2. StringUtils.split()с
Во-вторых, давайте еще раз посмотрим на классStringUtils из библиотеки Apache Commons Lang.
Среди многих безопасных для null методов для строковых объектов мы можем найтиStringUtils.split().. По умолчанию он предполагает разделитель пробелов:
Но мы также можем предоставить разделитель, если мы хотим.
3.3. Splitter.split()с
Наконец, мы также можем использоватьGuava с его текучим APISplitter:
4. Заключение
В этой статье мы продемонстрировали, как преобразовать массив в строку и обратно, используя ядро Java и популярные служебные библиотеки.
Конечно, реализацию всех этих примеров и фрагментов кода можно найтиover on GitHub.
How to Convert Array to String in Java
In this quick tutorial, we’re going to look at different ways to convert an array to String in Java.
We often need to convert an array or a list of strings into one single String to meet some basic programming needs.
For example, sometimes, we may want to join multiple strings separated by a comma to create a CSV String.
Feel free to check our article on how to convert a string into an array to learn how to do the opposite.
Converting Array to String in Java
Basically, converting an array of elements to a string is very easy and can be done using multiple strategies and methods. However, unfortunately, there is no direct way to achieve that in Java.
Now you may be wondering, why we can’t just use the toString() method, since arrays are considered objects in Java.
Well, if you try to invoke toString() on an array, you will get something like [C@15db9742 as output.
Not cool right? It’s not even a human-understandable result.
Using String.join() Method
join() belongs to String class and it can be used to join string array to produce one single String instance.
This method returns a new String composed of CharSequence elements joined together with the help of the specified delimiter.
In this example, we are going to use the join() method to create a new string object from an array.
Using Arrays.toString()
Arrays.toString() is a built-in method of Arrays utility class and it provides the simplest way to turn an Array into a String.
It simply returns the string representation of the specified array. All array’s elements will be separated by “,” and enclosed in square brackets “[]“.
Let’s see how we can use Arrays.toString() method to produce a single string from an array of strings:
Using StringBuilder append() Method
StringBuilder class can be used to create mutable string objects. It offers the append(String str) method to append a given string to the sequence.
StringBuilder.toString() returns the string representation of the data encapsulated in the StringBuilder object.
In order to use StringBuilder to convert an array to string in Java, we need to follow the following steps:
Create your array — of strings for example
Create a StringBuilder object
Iterate over the array
Use append() method to append every element — string — of the array
Use toString() method to return a string instance from the stringBuilder object.
Using StringJoiner class
StringJoiner is a new class introduced in Java 8, it belongs to the java.util package. It provides methods for joining multiple Strings into one single string object using a specified delimiter.
StringJoiner offers a fluent way to join strings, we can chain the calls and write code in one line.
For example, we can use it to join multiple strings separated by “/” to create a full path for a directory in Centos:
Java 8 Stream API
The joining() method is defined in Collectors class, it is mainly used to convert multiple strings to a string object.
We can use a delimiter — prefix and suffix too — of our choice to concatenate the input elements in order to construct the string instance.
In general, Collectors class provides 3 overloaded static methods to perform string joining operations.
Let’s see with an example how we can use Collectors.joining() to concatenate multiple strings to form one string:
Using StringUtils (Apache Commons)
StringUtils class from Apache Commons Lang library, offers multiple handy methods for handling string related operations.
It provides multiple join() methods that we can use to convert an array of strings to a single string in Java.
In order to use this class, we will need to add commons-lang3 dependency to our dependency management tool file (pom.xml in case of Maven):
The following example shows how to create a new string from an array using StringUtils.join():
Using Guava Joiner Class
Joiner (a class provided by Guava library) provides clean and concise syntax to handle string concatenation. It takes multiple strings and concatenates them together using delimiters.
Like the Splitter class, Joiner comes with interesting built-in utility methods such as skipNulls which can be used to skip and ignore null values.
To demonstrate this, let’s use the Joiner class to produce a comma separated string from an array:
Using Own Implementation
In case you don’t want to use all the above methods for some reason or another, we can always create our own implementation.
Here is an example that shows how to define a customized implementation for converting an array to string in Java.
How to Convert char Array to String in Java?
There are multiple ways to convert a char array (char[]) to a String in Java. Below, are the list of methods for converting char[] array to a string object.
Using String Constructor
String class provides an overloaded constructor that accepts a char array as an argument. Using a constructor is the most logical and easiest way to create a string from a char array.
All we need to do is passing the array as a parameter to the String constructor and we are done.
Using StringBuilder
StringBuilder is yet another simple way to produce a new string from a char[] array.
It provides the append() method which can be used to construct a single string from every character of the array.
The conversion logic is very simple:
Create a new StringBuilder instance.
Iterate over the array of characters.
Use append() method to add every character.
Use toString() method to get String object.
Using Arrays.stream()
Java 8 provides another pretty good solution to create a new string from a character array. We can use Arrays.stream() method to create a stream over an array of characters.
Then, we can use the joining() method of the Collectors class to create the String.
Let’s look at the following example:
Using valueOf(char[] data) and copyValueOf(char[] data)
The valueOf() method returns the string representation of the passed argument.
The String class has an overloaded static method: String.valueOf(char [] chars), which takes a char[] as an argument and returns a new string containing all the characters of the passed array.
copyValueOf(char[] data) method serves the same purpose as valueOf(). The two methods are equivalent according to javadocs.
Conclusion
That’s all folks! In this article, we have explored possible ways to convert an array to a String in Java.
Happy Learning! If you have any questions, please leave a note in the comments section.
Liked the Article? Share it on Social media!
If you enjoy reading my articles, buy me a coffee ☕. I would be very grateful if you could consider my request ✌️
Преобразование массива в строку в Java
В этом руководстве мы увидим, как преобразовать массив в строку различными способами в Java. Массив состоит из элементов одного типа данных, а строка — это просто набор символов. В следующих примерах мы рассмотрим три метода преобразования массива в строку.
Please enable JavaScript
Преобразование массива в строку с помощью метода Arrays.toString() в Java
Arrays — это класс, содержащий различные статические методы, которые могут управлять массивами. Одна из полезных функций Arrays — это toString (), которая принимает массив различных типов данных, таких как int и char, и возвращает строковое представление массива.
В этом примере мы создаем массив arrayOfInts типа int и заполняем его несколькими элементами. Чтобы преобразовать arrayOfInts в строку, мы используем Arrays.toString() и передаем его в качестве аргумента, возвращающего строку arrayToString , которую мы печатаем в выводе.
Преобразование массива в строку с помощью метода String.join() в Java
Метод join() был добавлен в класс String с выпуском JDK 8. Эта функция возвращает строку, объединенную с указанным разделителем. join() принимает разделитель и элементы в качестве аргументов.
В коде есть массив типа String . Мы вызываем метод String.join() и передаем пробел в качестве разделителя, а также массив, элементы которого будут объединены пробелом.
Вывод показывает все элементы массива, разделенные пробелами.
Преобразование массива в строку с помощью метода Arrays.stream() в Java
В этом примере мы используем Stream API, представленный в JDK 8. Arrays.stream() принимает массив. Метод collect() возвращает результат после выполнения указанной операции над каждым элементом массива. Здесь мы выполняем операцию Collectors.joining() над элементами массива, которая собирает элементы и объединяет их для возврата в виде целой строки.
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
Распечатать массив в Java
Напишите программу для печати одномерных и многомерных массивов на Java.
Как печатать одномерные массивы?
1. Цикл for или расширенный цикл for
Наивным подходом будет использование цикла for, как показано ниже:
Мы можем заменить приведенный выше цикл for улучшенным циклом for, как показано ниже:
2. Arrays учебный класс — toString() или же deepToString() метод
Другим простым решением было бы просто использовать Arrays.toString(Object[] a) метод, который вернет строковое представление содержимого указанного массива. Мы также можем использовать Arrays.deepToString(Object[] a) который возвращает строковое представление “глубокого содержимого” указанного массива, т. е. если массив содержит в качестве элементов другие массивы, строковое представление включает их содержимое и т.д.
результат:
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5]
3. Apache Commons Lang – ArrayUtils.toString() метод
Arrays.toString() а также Arrays.deepToString() будет работать только на Java SE 5 и выше. Apache Commons предоставляет ArrayUtils.toString() метод, аналогичный Arrays.deepToString() и выводит массив в виде строки. Ниже приведены его отличия от Arrays.deepToString() :
- Строковое представление элементов массива заключено в фигурные скобки. <> в отличие от квадратных скобок [] .
- Соседние элементы разделяются только запятой (а не пробелом).
- Предусмотрена поддержка печати многомерных массивов.
4. Поток Java 8
В Java SE 8 и выше мы можем использовать потоки для печати массива. Ниже приведены две терминальные операции, которые мы можем применить к потоку для печати массива.