Рубрики
Без рубрики

Пример преобразования массива строк Java в строку, массив строк в java, массив Java в строку, метод Arrays.toString, как преобразовать массив java в код примера строки.

Пример преобразования массива строк Java в строку, массив строк в java, массив Java в строку, метод Arrays.toString, как преобразовать массив java в код примера строки.

Автор оригинала: Pankaj Kumar.

Сегодня мы рассмотрим, как преобразовать массив строк Java в строку. Иногда нам приходится преобразовывать массив строк в строку в соответствии с конкретными требованиями. Например, мы хотим зарегистрировать содержимое массива или нам нужно преобразовать значения массива строк в строку и вызвать другие методы.

Массив строк 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);
	}

}

На рисунке ниже показан результат, полученный вышеуказанной программой.

Причина приведенного выше вывода заключается в том, что вызов toString() массива приведет к суперклассу объектов, где он реализован, как показано ниже.

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(", ");
    }
}

Мы также можем создать ваш собственный метод преобразования массива строк в строку, если у нас есть определенные требования к формату.

Ниже приведена простая программа, показывающая эти методы в действии и полученные результаты.

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);
	}
}

Поэтому, если мы используем метод array toString () , он возвращает бесполезные данные.

Класс массивов Java предоставляет toString(Object[] objArr) , который выполняет итерацию по элементам массива и использует их реализацию toString() для возврата строкового представления массива. Вот почему, когда мы используем эту функцию, мы видим, что она печатает содержимое массива и может использоваться для ведения журнала.

Если вы хотите объединить все строковые элементы в массиве строк с определенным разделителем, вы можете использовать convertStringArrayToString(String[] strArr, разделитель строк) метод, который возвращает строку после их объединения.

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

Теперь давайте расширим наш строковый массив до строкового примера для использования с любыми другими пользовательскими классами, вот реализация.

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 в строку, а затем расширили его для использования с пользовательскими объектами. Это все для преобразования массива java в строку.

Ссылка: Java Массивы toString API Doc