134 votes

Une méthode pour annuler l’effet de java String.Split () ?

Je suis à la recherche d’une méthode pour combiner un tableau de chaînes dans une chaîne délimitée. Un opposé à split(). J’ai vu cela dans d’autres langues.

Voulais vous demander le forum avant que j’ai essayer d’écrire mon propre (depuis le JDK a tout...)

Merci,

96voto

John Topley Points 58789

Il n’y a aucune méthode dans le JDK pour ça que je connais. Apache Commons Lang a différentes surchargé méthodes dans le [ ](http://commons.apache.org/proper/commons-lang/javadocs/api-release/org/apache/commons/lang3/StringUtils.html#join%28T...%29) classe que ce que vous voulez.

53voto

Nathaniel Johnson Points 1776

Il a été ouvert demande de fonctionnalité depuis au moins 2009. Le long et court, c'est que ce sera une partie de la fonctionnalité de JDK 8 de java.util.StringJoiner classe. http://download.java.net/lambda/b81/docs/api/java/util/StringJoiner.html

Voici l'Oracle problème si vous êtes intéressé. http://bugs.sun.com/view_bug.do?bug_id=5015163

Mise à jour

Voici un exemple de la nouvelle JDK 8 StringJoiner sur un tableau de Chaîne de caractères

String[] a = new String[]{"first","second","third"};
StringJoiner sj = new StringJoiner(",");
for(String s:a) sj.add(s);
System.out.println(sj); //first,second,third

Une méthode utilitaire en Chaîne cela rend encore plus simple:

String s = String.join(",", stringArray);

24voto

David Howard Points 209

Vous pouvez extraire cette fonctionnalité du package Arrays .

 import java.util.Arrays;
...
    String  delim = ":",
            csv_record = "Field0:Field1:Field2", 
            fields[] = csv_record.split(delim);

    String rebuilt_record = Arrays.toString(fields).replace(", ", delim).replaceAll("[\\[\\]]", "");
 

16voto

Azder Points 2076

J'ai eu l'exemple suivant ici

 /*
7) Join Strings using separator >>>AB$#$CD$#$EF

 */

import org.apache.commons.lang.StringUtils;

public class StringUtilsTrial {
  public static void main(String[] args) {

    // Join all Strings in the Array into a Single String, separated by $#$
    System.out.println("7) Join Strings using separator >>>"
        + StringUtils.join(new String[] { "AB", "CD", "EF" }, "$#$"));
  }
}
 

12voto

Blair Zajac Points 1838

Google fournit également un cours de menuisier dans sa bibliothèque de collections Google:

API de menuisier

Collections Google

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