La conversion de liste de tableaux de Caractères d'une Chaîne de caractères?
Comment faire pour convertir un ArrayList<Character>
à un String
en Java?
Le toString
méthode retourne comme [a,b,c]
chaîne - je veux me débarrasser de crochets et de le stocker en tant que abc
.
- que dire de la virgule (c'est à dire
,
)?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez parcourir la liste et de créer la chaîne.
En aparté,
toString()
renvoie un format lisible par l'homme de la liste de tableaux de contenu. C'est pas la peine de le temps de filtrer les caractères inutiles à partir d'elle. C'est la mise en œuvre pourrait changer demain, et vous devrez réécrire votre code de filtrage.StringBuilder(list.size());
donc pas inutile reallocs se produire, mais c'est une optimisationIci possible de la ligne de solution à l'aide de Java8 ruisseaux.
a) Liste des Caractères des objets à la Chaîne :
b) tableau de caractères (char[] caractères)
Mise à JOUR (suite à un commentaire ci-dessous):
a) Liste des Caractères des objets à la Chaîne :
b) tableau de caractères (char[] caractères)
....collect(Collectors.joining())
Vous pouvez le faire en utilisant les méthodes toString() et RegExp sans boucles et des ruisseaux:
List<Character> list = Arrays.asList('a', 'b', 'c');
String s = list.toString().replaceAll("[,\\s\\[\\]]", "");
Plus simple est de faire une boucle par.
En supposant que vous avez une liste qui suit:
Cela donnera
hello
(je suis en utilisantorg.apache.commons.lang.ArrayUtils
de la classe helper):ArrayUtils#toPrimitive
? Je sais que le problème peut être résolu avec des approches différentes, je me demande à propos de cette méthode que j'ai choisie de manière à éviter explicite de la boucle. D'ailleurs, je ne peux pas imaginer necommons-lang
sur le chemin de classe de nos jours...Comment à ce sujet, la Construction de la liste
Code pour obtenir la Chaîne de caractères à partir d'une Liste de Caractères:
Encore à apprendre si il y a un misake point de sortir.
Beaucoup de solutions disponibles. Vous pouvez effectuer une itération sur les caractères et de les ajouter à un StringBuilder, puis lorsque vous avez terminé l'ajout, appel .toString sur le StringBuilder.
Ou utiliser quelque chose comme commons-lang StringUtils.joindre à partir de l'apache commons-lang projet.
Je dirais :
À l'aide de
join
d'unJoiner
classe:Utilisation
toString
puis retirez, and spaces
Ou à l'aide de flux: