Java String Array to String

Hoy vamos a ver cómo convertir un array de String de Java a String. A veces tenemos que convertir un array de String a String para requisitos específicos. Por ejemplo; queremos registrar los contenidos del array o necesitamos convertir los valores del array de String a String e invocar otros métodos.

Array de String de Java a String

La mayoría de las veces invocamos el método toString() de un objeto para obtener su representación como String. Veamos qué sucede cuando invocamos el método toString() en un array de String en 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);
	}

}

La imagen a continuación muestra la salida producida por el programa anterior. La razón de la salida anterior es porque la llamada a toString() en el array se dirige a la superclase Object donde está implementada como se muestra a continuación.

public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }

Ejemplo de conversión de Array de String de Java a String

Entonces, ¿cómo convertir una matriz de cadenas a una cadena en Java? Podemos usar el método Arrays.toString que invoca el método toString() en cada elemento e usar StringBuilder para crear la cadena.

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

También podemos crear nuestro propio método para convertir una matriz de cadenas a una cadena si tenemos requisitos de formato específicos. A continuación se muestra un programa simple que muestra estos métodos en acción y la salida producida.

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

Entonces, si usamos el método toString() de la matriz, devuelve datos inútiles. La clase Arrays de Java proporciona toString(Object[] objArr) que itera sobre los elementos de la matriz y utiliza su implementación de toString() para devolver la representación de cadena de la matriz. Es por eso que cuando usamos esta función, podemos ver que imprime el contenido de la matriz y se puede usar con fines de registro. Si desea combinar todos los elementos de cadena en la matriz de cadenas con un delimitador específico, entonces puede usar el método convertStringArrayToString(String[] strArr, String delimiter) que devuelve la cadena después de combinarlos.

Ejemplo de Matriz Java a Cadena

Ahora vamos a ampliar nuestro ejemplo de matriz de cadenas a cadenas para usar con cualquier otra clase personalizada, aquí está la implementación.

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

		// método toString() predeterminado
		System.out.println(arr.toString());

		// usando Arrays.toString() para imprimir el contenido del array de objetos
		System.out.println(Arrays.toString(arr));

		// convirtiendo un array de objetos en cadena
		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;
	}
}

La salida producida por el programa de ejemplo de matriz de Java a cadena es;

[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

Así que vimos cómo convertir una matriz de cadenas de Java a cadena y luego la extendimos para usar con objetos personalizados. Eso es todo para convertir una matriz de Java a una cadena.

Puedes consultar más ejemplos básicos de Java en nuestro Repositorio de GitHub.

Referencia: Documentación de API de Java Arrays toString

Source:
https://www.digitalocean.com/community/tutorials/java-string-array-to-string