Oggi vedremo come convertire un array di stringhe in una stringa Java. A volte dobbiamo convertire un array di stringhe in una stringa per requisiti specifici. Ad esempio, vogliamo registrare il contenuto dell’array o dobbiamo convertire i valori dell’array di stringhe in una stringa e invocare altri metodi.
Array di stringhe Java in stringa
La maggior parte delle volte invochiamo il metodo toString()
di un oggetto per ottenere la rappresentazione come stringa. Vediamo cosa succede quando invochiamo il metodo toString()
su un array di stringhe in 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);
}
}
L’immagine sottostante mostra l’output prodotto dal programma precedente. Il motivo dell’output sopra è perché la chiamata
toString()
sull’array viene indirizzata alla superclasse Object, dove è implementata come segue.
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
Esempio di conversione di un array di stringhe in stringa Java
Quindi come convertire un array di stringhe in una stringa in Java. Possiamo utilizzare il metodo Arrays.toString
che invoca il metodo toString() sugli elementi individuali e utilizza StringBuilder per creare la stringa.
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(", ");
}
}
Possiamo anche creare il nostro metodo per convertire un array di stringhe in una stringa se abbiamo determinati requisiti di formato. Di seguito è riportato un programma semplice che mostra questi metodi in azione e l’output prodotto.
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);
}
}
Quindi se utilizziamo il metodo
toString()
dell’array, restituisce dati inutili. La classe Java Arrays fornisce toString(Object[] objArr)
che itera sugli elementi dell’array e utilizza la loro implementazione di toString()
per restituire la rappresentazione della stringa dell’array. Ecco perché quando utilizziamo questa funzione, possiamo vedere che stampa i contenuti dell’array e può essere utilizzata a scopo di logging. Se vuoi combinare tutti gli elementi di stringa nell’array di stringhe con un determinato delimitatore, allora puoi utilizzare il metodo convertStringArrayToString(String[] strArr, String delimiter)
che restituisce la stringa dopo averli combinati.
Esempio di conversione di un array Java in stringa
Ora estendiamo il nostro esempio di array di stringhe per utilizzarlo con qualsiasi altra classe personalizzata, ecco l’implementazione.
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") };
// metodo toString() predefinito
System.out.println(arr.toString());
// utilizzo di Arrays.toString() per stampare i contenuti dell'array di oggetti
System.out.println(Arrays.toString(arr));
// conversione dell'array di oggetti in stringa
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;
}
}
L’output prodotto dal programma di esempio java array to String sopra è;
[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
Quindi abbiamo visto come convertire un array di stringhe Java in una stringa e poi estenderlo per usarlo con oggetti personalizzati. Questo è tutto per la conversione dell’array java in stringa.
Puoi controllare altri esempi di base di Java dal nostro Repository GitHub.
Riferimento: Documentazione API Java Arrays toString
Source:
https://www.digitalocean.com/community/tutorials/java-string-array-to-string