- How to convert an array to a string in Java
- You might also like.
- Java String Array to String
- Java String Array to String
- Java String Array to String Example
- Java Array to String Example
- Преобразование массива в строку
- 2. Преобразуйте массив в строку
- 2.1. StringBuilder.append()
- 2.2. API потоков Java
- 2.3. StringUtils.join()
- 2.4. Столяр.()
- 3. Преобразуйте строку в массив строк
- 3.1. Строка.разделение()
- 3.2. StringUtils.split()
- 3.3. Splitter.split()
- 4. Заключение
- Читайте ещё по теме:
How to convert an array to a string in Java
Sometimes you want to convert an array of strings or integers into a single string. However, unfortunately, there is no direct way to perform this conversion in Java.
The default implementation of the toString() method on an array only tells us about the object’s type and hash code and returns something like [Ljava.lang.String;@f6f4d33 as output.
In this article, we shall look at different ways to convert an array into a string in Java.
The String.join() method returns a new string composed of a set of elements joined together using the specified delimiter:
String[] fruits = "Apple", "Orange", "Mango", "Banana">; String str = String.join(", ", fruits); System.out.println(str); // Apple, Orange, Mango, Banana
You can also pass the strings that you want to join directly to the String.join() method, as shown below:
String str = String.join(" ", "Java", "is", "awesome", "🌟"); System.out.println(str); // Java is awesome 🌟
ListString> animals = List.of("Fox", "Dog", "Loin", "Cow"); String str = String.join("-", animals); System.out.println(str); // Fox-Dog-Loin-Cow CharSequence[] vowels = "a", "e", "i", "o", "u">; String str2 = String.join(",", vowels); System.out.println(str2); // a,e,i,o,u
Java Streams API provides the Collectors.joining() method to join strings from the Stream using a delimiter:
String[] fruits = "Apple", "Orange", "Mango", "Banana">; String str = Arrays.stream(fruits).collect(Collectors.joining(", ")); System.out.println(str); // Apple, Orange, Mango, Banana
Besides delimiter, you can also pass prefix and suffix of your choice to the Collectors.joining() method:
String[] fruits = "Apple", "Orange", "Mango", "Banana">; String str = Arrays.stream(fruits) .collect(Collectors.joining(", ", "[", "]")); System.out.println(str); // [Apple, Orange, Mango, Banana]
The Arrays.toString() method returns a string representation of the contents of the specified array. All array’s elements are joined together using a comma ( , ) as a delimiter and enclosed in square brackets ( [] ) as shown below:
String[] fruits = "Apple", "Orange", "Mango", "Banana">; String str = Arrays.toString(fruits); System.out.println(str); // [Apple, Orange, Mango, Banana]
The best thing about Arrays.toString() is that it accepts both primitive and object arrays and converts them into a string:
int[] number = 1, 2, 3, 4>; System.out.println(Arrays.toString(number)); // [1, 2, 3, 4] double[] prices = 3.46, 9.89, 4.0, 2.89>; System.out.println(Arrays.toString(prices)); // [3.46, 9.89, 4.0, 2.89]
The StringBuilder class is used to create mutable strings in Java. It provides an append() method to append the specified string to the sequence. The toString() method of the StringBuilder class returns a string representation of the data appended. To convert an array to a string using StringBuilder , we have to use a loop to iterate over all array’s elements and then call the append() method to append them into the sequence:
String[] fruits = "Apple", "Orange", "Mango", "Banana">; StringBuilder builder = new StringBuilder(); for (int i = 0; i fruits.length; i++) builder.append(fruits[i]).append(" "); > String str = builder.toString(); System.out.println(str); // Apple Orange Mango Banana
int[] number = 1, 2, 3, 4>; StringBuilder builder = new StringBuilder(); for (int i = 0; i number.length; i++) builder.append(number[i]).append(" "); > String str = builder.toString(); System.out.println(str); // 1 2 3 4
The StringJoiner class was introduced in Java 8, and it provides methods for combining multiple strings into a single string using the specified delimiter:
String path = new StringJoiner("/") .add("/usr") .add("share") .add("projects") .add("java11") .add("examples").toString(); System.out.println(path); // /usr/share/projects/java11/examples
As you can see above, the StringJoiner class provides a very fluent way of joining strings. We can easily chain multiple calls together to build a string.
Finally, the last way to convert an array of strings into a single string is the Apache Commons Lang library. The join() method of the StringUtils class from Commons Lang transforms an array of strings into a single string:
String[] names = "Atta", "Arif", "Meero", "Alex">; String str = StringUtils.join(names, "|"); System.out.println(str); // Atta|Arif|Meero|Alex
To convert a string back into an array in Java, read this article. ✌️ Like this article? Follow me on Twitter and LinkedIn. You can also subscribe to RSS Feed.
You might also like.
Java String Array to String
While we believe that this content benefits our community, we have not yet thoroughly reviewed it. If you have any suggestions for improvements, please let us know by clicking the “report an issue“ button at the bottom of the tutorial.
Today we will look into how to convert Java String array to String. Sometimes we have to convert String array to String for specific requirements. For example; we want to log the array contents or we need to convert values of the String array to String and invoke other methods.
Java String Array to String
Most of the time we invoke toString() method of an Object to get the String representation. Let’s see what happens when we invoke toString() method on String array in 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); > >
Below image shows the output produced by the above program. The reason for the above output is because toString() call on the array is going to Object superclass where it’s implemented as below.
Java String Array to String Example
So how to convert String array to String in java. We can use Arrays.toString method that invoke the toString() method on individual elements and use StringBuilder to create String.
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(", "); >>
We can also create our own method to convert String array to String if we have some specific format requirements. Below is a simple program showing these methods in action and output produced.
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); >>
So if we use array toString() method, it returns useless data. Java Arrays class provide toString(Object[] objArr) that iterates over the elements of the array and use their toString() implementation to return the String representation of the array. That’s why when we use this function, we can see that it’s printing the array contents and it can be used for logging purposes. If you want to combine all the String elements in the String array with some specific delimiter, then you can use convertStringArrayToString(String[] strArr, String delimiter) method that returns the String after combining them.
Java Array to String Example
Now let’s extend our String array to String example to use with any other custom classes, here is the implementation.
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; >>
[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
So we looked at how to convert Java String array to String and then extended it to use with custom objects. That’s all for converting java array to String. You can checkout more core java examples from our GitHub Repository. Reference: Java Arrays toString API Doc
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases. Learn more about us
Преобразование массива в строку
В этом коротком уроке мы рассмотрим преобразование массива строк или целых чисел в строку и обратно.
Мы можем достичь этого с помощью классов утилит vanilla Java и Java из часто используемых библиотек.
2. Преобразуйте массив в строку
Иногда нам нужно преобразовать массив строк или целых чисел в строку, но, к сожалению, прямого метода для выполнения этого преобразования не существует.
Реализация по умолчанию метода toString() в массиве возвращает что-то вроде Ljava.lang.Строка;@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() из API Java Streams, который соединяет строки из 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. Столяр.()
И чтобы не быть превзойденным, Гуава вмещает то же самое со своим Столяром | классом. Класс Joiner предлагает свободный API и предоставляет несколько вспомогательных методов для объединения данных.
Например, мы можем добавить разделитель или пропустить нулевые значения:
String joinedString = Joiner.on("") .skipNulls() .join(new String[]< "Convert", "With", "Guava", null >); assertEquals("ConvertWithGuava", joinedString);
3. Преобразуйте строку в массив строк
Аналогично, иногда нам нужно разбить строку на массив, содержащий некоторое подмножество входных строк, разделенных указанным разделителем, давайте посмотрим, как мы можем это сделать.
3.1. Строка.разделение()
Во-первых, давайте начнем с разделения пробела с помощью метода String.split() без разделителя:
String[] strArray = "loremipsum".split("");
3.2. StringUtils.split()
Во-вторых, давайте еще раз посмотрим на класс StringUtils из библиотеки Commons Lang Apache.
Среди многих null-безопасных методов для строковых объектов мы можем найти StringUtils.split(). По умолчанию используется разделитель пробелов:
String[] splitted = StringUtils.split("lorem ipsum dolor sit amet");
["lorem", "ipsum", "dolor", "sit", "amet"]
Но мы также можем предоставить разделитель, если захотим.
3.3. Splitter.split()
Наконец, мы также можем использовать Guava с его Splitter fluent API:
ListresultList = Splitter.on(' ') .trimResults() .omitEmptyStrings() .splitToList("lorem ipsum dolor sit amet"); String[] strArray = resultList.toArray(new String[0]);
["lorem", "ipsum", "dolor", "sit", "amet"]
4. Заключение
В этой статье мы проиллюстрировали, как преобразовать массив в строку и обратно с помощью основных библиотек Java и популярных утилит.
Конечно, реализацию всех этих примеров и фрагментов кода можно найти на GitHub .