111 votes

Equivalents Java de C # String.Format () et String.Join ()

Je sais que c'est une question de débutant, mais y a-t-il des équivalents aux opérations sur les chaînes de C # en Java?

Plus précisément, je parle de String.Format et String.Join .

92voto

Grant Wagner Points 14085

L'objet Java String a une méthode format (à partir de 1.5), mais aucune méthode join .

Pour obtenir un tas de méthodes utilitaires String non incluses, vous pouvez utiliser org.apache.commons.lang.StringUtils .

46voto

Allain Lalonde Points 28717

String.format . En ce qui concerne rejoindre, vous devez écrire le vôtre:

  static String join(Collection<?> s, String delimiter) {
     StringBuilder builder = new StringBuilder();
     Iterator<?> iter = s.iterator();
     while (iter.hasNext()) {
         builder.append(iter.next());
         if (!iter.hasNext()) {
           break;                  
         }
         builder.append(delimiter);
     }
     return builder.toString();
 }
 

Ce qui précède vient de http://snippets.dzone.com/posts/show/91

38voto

Noel Yap Points 3008

La goyave vient avec la classe Joiner .

 import com.google.common.base.Joiner;

Joiner.on(separator).join(data);
 

29voto

qntm Points 524

Comme de Java 8, join() est désormais disponible sur les deux méthodes de la classe sur la classe String. Dans les deux cas, le premier argument est le délimiteur.

Vous pouvez passer individuels CharSequences comme des arguments supplémentaires:

String message = String.join(", ", "Antimony", "Arsenic", "Aluminum", "Selenium");
// "Antimony, Arsenic, Alumninum, Selenium"

Ou vous pouvez passer un Iterable<? extends CharSequence>:

List<String> strings = new LinkedList<String>();
strings.add("EX");
strings.add("TER");
strings.add("MIN");
strings.add("ATE");

String message = String.join("-", strings);
// "EX-TER-MIN-ATE"

17voto

Melllvar Points 813

TextUtils.join est disponible sur Android

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