284 votes

Convertir en tableau de chaînes de caractères dans une chaîne de caractères en Java

Je veux le code Java pour la conversion d'un tableau de chaînes de caractères dans une chaîne.

542voto

berry120 Points 21945

Utiliser Arrays.toString() ou de:

StringBuilder builder = new StringBuilder();
for(String s : arr) {
    builder.append(s);
}
return builder.toString();

Vous pouvez modifier ci-dessus en fonction des caractères qu', si vous en souhaitez une, entre les deux chaînes.

Vous pouvez aussi voir de près un code identique à ci-dessus mais en utilisant StringBuffer - StringBuilder est une nouvelle classe qui n'est pas thread-safe, mais donc a une meilleure performance dans un seul thread, car il fait disparaître les inutiles de la synchronisation. En bref, vous êtes mieux à l'aide d' StringBuilder dans 99% des cas, la fonctionnalité sage, les deux sont identiques.

NE PAS utiliser une chaîne et ajoutez simplement avec += comme certaines réponses montrent ici. Cela envoie le GC à travers le toit parce que vous êtes en train de créer et de jeter que de nombreux objets de chaîne que vous avez des articles dans votre tableau. Pour les petits tableaux que vous ne pourriez pas vraiment de différence, mais pour ceux de grande taille, il peut être ordres de grandeur plus lent.

103voto

krock Points 13537

L'utilisation d'Apache commons StringUtils.join(). Il prend un Objet tableau comme paramètre et les appels toString() sur chaque élément (si elle n'est pas null) pour obtenir chacun des éléments de la chaîne de la représentation. Chacun des éléments de représentation de chaîne est ensuite intégré dans une chaîne de caractères avec un séparateur entre les deux s'il est spécifié:

String joinedString = StringUtils.join(new Object[]{"a", "b", 1}, "-");
System.out.println(joinedString);

Produit:

a-b-1

36voto

rich Points 3527

J'ai comme l'utilisation de Google Goyave Menuisier pour cela, par exemple:

Joiner.on(", ").skipNulls().join("Harry", null, "Ron", "Hermione");

serait de produire la même Chaîne que:

new String("Harry, Ron, Hermione");

14voto

JoeSlav Points 1077

Vous pouvez faire cela, étant donné un tableau a de type primitif:

StringBuffer result = new StringBuffer();
for (int i = 0; i < a.length; i++) {
   result.append( a[i] );
   //result.append( optional separator );
}
String mynewstring = result.toString();

10voto

SANN3 Points 2284

Essayez les Tableaux.deepToString méthode.

Renvoie une représentation sous forme de chaîne de la "profonde contenu" de la tableau. Si le tableau contient d'autres tableaux comme des éléments, la chaîne représentation contient leur contenu et ainsi de suite. Cette méthode est conçu pour la conversion de tableaux multidimensionnels à cordes

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X