Bonjour,
Je cherche a assembler un tableau de type List<String> en String avec un séparateur entre les chaines.
Existe-t-il une fonction capable de faire ceci, comme sous php avec implode ?
Merci d'avance :lol:
Version imprimable
Bonjour,
Je cherche a assembler un tableau de type List<String> en String avec un séparateur entre les chaines.
Existe-t-il une fonction capable de faire ceci, comme sous php avec implode ?
Merci d'avance :lol:
la réponse et non... tu parcours ta liste et tu crées ton string au fur et à mesure
Il te suffit d'utiliser la méthode toString()...
Le code suivant :
te donnera le résultat suivant :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 String toto; ArrayList liste = new ArrayList(); liste.add("texte1"); liste.add("texte2"); liste.add("texte3"); liste.add("texte4"); liste.add("texte5"); toto = liste.toString(); System.out.println( toto );
[texte1, texte2, texte3, texte4, texte5]
J'ajouterais... "tu parcours ta liste et crées ton String intelligemment au fur et à mesure" :mrgreen:
"Intelligemment", c'est-à-dire que tu passes par un StringBuffer ou un StringBuilder, et que tu ne récupères ton String que tout à la fin de la méthode.
Sinon la méthode toString() sur la liste est effectivement envisageable, mais je lui trouve des inconvénients:
- pas de choix possible du séparateur
- conséquence de ce premier problème, si les chaînes de caractères contiennent des virgules, les post-traitement sur cette chaîne de caractère risquent d'être vraiment compliqués...
Salut,
Franchement c'est un peu de la bidouille... surtout pour une simple concaténation de chaines !
a++Code:
1
2
3
4
5
6
7
8
9
10
11 public static String implode (String glue, Iterable<String> pieces) { Iterator<String> iterator = pieces.iterator(); if (iterator.hasNext()) { StringBuilder sb = new StringBuilder(iterator.next()); while(iterator.hasNext()) { sb.append(glue).append(iterator.next()); } return sb.toString(); } return null; // Iterable vide }