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