Массив строк 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[] {"1","2","3"};
String str = strArr.toString();
System.out.println("Java String array to String = "+str);
}
}
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
Пример массива строк 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