104 votes

L'équivalent Java de Explode et Implode(PHP)

Je suis nouveau en Java bien qu'ayant une bonne expérience en PHP, et je cherche à remplacer parfaitement les fonctions explode et implode (disponibles en PHP) en Java.

J'ai cherché sur Google mais je ne suis pas satisfait des résultats. Si quelqu'un a une bonne solution à mon problème, je l'en remercie.

Par exemple :

String s = "x,y,z";
//Here I need a function to divide the string into an array based on a character.
array a = javaExplode(',', s);  //What is javaExplode?
System.out.println(Arrays.toString(a));

Sortie souhaitée :

[x, y, z]

151voto

Brian Roach Points 43787

En Javadoc pour String révèle que String.split() est ce que vous recherchez en matière de explode .

Java ne comprend pas d'équivalent "implode" ou "join". Plutôt que d'inclure une dépendance externe géante pour une simple fonction comme le suggèrent les autres réponses, vous pouvez simplement écrire quelques lignes de code. Il y a plusieurs façons d'y parvenir ; l'utilisation d'une fonction StringBuilder est un :

String foo = "This,that,other";
String[] split = foo.split(",");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < split.length; i++) {
    sb.append(split[i]);
    if (i != split.length - 1) {
        sb.append(" ");
    }
}
String joined = sb.toString();

25voto

Aquillo Points 3680

String.split() peut vous fournir un remplacement pour explode()

Pour un remplacement de implode() Je vous conseille d'écrire soit une fonction personnalisée, soit d'utiliser Apache Commons 's StringUtils.join() fonctions.

17voto

EnKrypt Points 329

De bonnes alternatives sont les méthodes String.split et StringUtils.join.

Exploser :

String[] exploded="Hello World".split(" ");

Implode :

String imploded=StringUtils.join(new String[] {"Hello", "World"}, " ");

Gardez cependant à l'esprit que StringUtils se trouve dans une bibliothèque externe.

5voto

Tichodroma Points 11266

java.lang.String.split(String regex) est ce que vous recherchez.

4voto

Ivan Sharamet Points 85

Je ne suis pas familier avec PHP, mais je pense que String.split est l'équivalent en Java de PHP explode . Quant à implode La bibliothèque standard ne fournit pas cette fonctionnalité. Il suffit d'itérer sur votre tableau et de construire une chaîne de caractères en utilisant la fonction StringBuilder / StringBuffer . Ou vous pouvez essayer excellent Google Guava Séparateur y Menuisier o split/join méthodes de Apache Commons StringUtils .

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