Aujourd’hui, nous allons examiner comment convertir un tableau de chaînes Java en une seule chaîne. Parfois, nous devons convertir un tableau de chaînes en une seule chaîne pour des besoins spécifiques. Par exemple ; nous voulons consigner le contenu du tableau ou nous devons convertir les valeurs du tableau de chaînes en une seule chaîne et invoquer d’autres méthodes.
Tableau de chaînes Java en une seule chaîne
La plupart du temps, nous invoquons la méthode toString()
d’un objet pour obtenir sa représentation sous forme de chaîne. Voyons ce qui se passe lorsque nous invoquons la méthode toString()
sur un tableau de chaînes 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);
}
}
L’image ci-dessous montre la sortie produite par le programme ci-dessus. La raison de la sortie ci-dessus est que l’appel de
toString()
sur le tableau se fait dans la superclasse Object où il est implémenté comme suit.
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
Exemple de conversion d’un tableau de chaînes Java en une seule chaîne
Donc comment convertir un tableau de chaînes en chaîne en Java. Nous pouvons utiliser la méthode Arrays.toString
qui invoque la méthode toString() sur chaque élément individuel et utilise StringBuilder pour créer une chaîne.
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(", ");
}
}
Nous pouvons également créer notre propre méthode pour convertir un tableau de chaînes en chaîne si nous avons des exigences de format spécifiques. Voici un programme simple montrant ces méthodes en action et la sortie produite.
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);
}
}
Donc, si nous utilisons la méthode
toString()
sur le tableau, elle renvoie des données inutiles. La classe Java Arrays fournit toString(Object[] objArr)
qui itère sur les éléments du tableau et utilise leur implémentation de toString()
pour renvoyer la représentation de la chaîne du tableau. C’est pourquoi lorsque nous utilisons cette fonction, nous pouvons voir qu’elle imprime le contenu du tableau et peut être utilisée à des fins de journalisation. Si vous souhaitez combiner tous les éléments de chaîne du tableau de chaînes avec un délimiteur spécifique, vous pouvez utiliser la méthode convertStringArrayToString(String[] strArr, String delimiter)
qui renvoie la chaîne après les avoir combinés.
Exemple de conversion de tableau Java en chaîne
Maintenant, étendons notre exemple de tableau de chaînes vers une utilisation avec n’importe quelles autres classes personnalisées, voici l’implémentation.
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éthode toString() par défaut
System.out.println(arr.toString());
// utilisation de Arrays.toString() pour afficher le contenu du tableau d'objets
System.out.println(Arrays.toString(arr));
// conversion d'un tableau d'objets en chaîne
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 sortie produite par le programme d’exemple Java ci-dessus pour la conversion d’un tableau en chaîne est :
[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
Nous avons donc vu comment convertir un tableau de chaînes Java en chaîne, puis l’avons étendu pour l’utiliser avec des objets personnalisés. C’est tout pour la conversion d’un tableau Java en chaîne.
Vous pouvez consulter plus d’exemples de base Java depuis notre Dépôt GitHub.
Référence : Documentation API Java Arrays toString
Source:
https://www.digitalocean.com/community/tutorials/java-string-array-to-string