Hoje vamos aprender como converter um array de String em Java para String. Às vezes, precisamos converter um array de String para String para requisitos específicos. Por exemplo; queremos registrar o conteúdo do array ou precisamos converter os valores do array de String para String e invocar outros métodos.
Array de String em Java para String
Na maioria das vezes, invocamos o método toString()
de um Objeto para obter a representação String. Vamos ver o que acontece quando invocamos o método toString()
em um array de String em 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);
}
}
A imagem abaixo mostra a saída produzida pelo programa acima. O motivo da saída acima é porque a chamada de
toString()
no array está indo para a superclasse Object onde está implementada da seguinte forma.
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
Exemplo de Conversão de Array de String em Java para String
Então, como converter uma matriz de String para String em Java. Podemos usar o método Arrays.toString
que invoca o método toString() em elementos individuais e usa StringBuilder para criar a 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(", ");
}
}
Também podemos criar nosso próprio método para converter uma matriz de String para String se tivermos alguns requisitos específicos de formato. Abaixo está um programa simples mostrando esses métodos em ação e a saída produzida.
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);
}
}
Então, se usarmos o método
toString()
da matriz, ele retornará dados inúteis. A classe Arrays do Java fornece toString(Object[] objArr)
que itera sobre os elementos da matriz e usa sua implementação de toString()
para retornar a representação da String da matriz. É por isso que, quando usamos essa função, podemos ver que ela está imprimindo o conteúdo da matriz e pode ser usada para fins de registro. Se você deseja combinar todos os elementos de String na matriz de String com algum delimitador específico, então você pode usar o método convertStringArrayToString(String[] strArr, String delimiter)
que retorna a String após combiná-los.
Exemplo de Matriz Java para String
Agora vamos estender nosso exemplo de String array para usar com quaisquer outras classes personalizadas, aqui está a implementação.
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() padrão
System.out.println(arr.toString());
// usando Arrays.toString() para imprimir o conteúdo do array de objetos
System.out.println(Arrays.toString(arr));
// convertendo Array de Objetos para 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;
}
}
A saída produzida pelo programa de exemplo java de array para String acima é;
[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
Então nós vimos como converter um array de String Java para String e então estendemos para usar com objetos personalizados. Isso é tudo para converter array java para String.
Você pode verificar mais exemplos básicos de java em nosso Repositório do GitHub.
Referência: Documentação da API Java Arrays toString
Source:
https://www.digitalocean.com/community/tutorials/java-string-array-to-string