web-dev-qa-db-fra.com

Explode et Implode (comme PHP) dans Java

Je suis nouveau dans Java bien que j'aie une bonne expérience de PHP et que je cherche un remplacement parfait pour les fonctions exploser et imploser (disponibles en PHP) en Java.

J'ai googlé pour la même chose mais je ne suis pas satisfait des résultats. Tout le monde a la bonne solution pour mon problème sera apprécié.

Par exemple:

String s = "x,y,z";
array a = javaExplode(',',s);  //what is javaExplode??
System.out.println(Arrays.toString(a));

Sortie désirée:

[x, y, z]
87
Pankaj Wanjari

Le Javadoc for String révèle que String.split() est ce que vous recherchez en ce qui concerne explode.

Java n'inclut pas d'équivalent "implode" ou "join". Plutôt que d'inclure une dépendance externe géante pour une fonction simple, comme le suggèrent les autres réponses, vous souhaiterez peut-être simplement écrire quelques lignes de code. Il y a plusieurs façons de le faire. utiliser un StringBuilder en 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();
132
Brian Roach

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

Pour un remplacement de implode(), je vous conseillerais d'écrire une fonction personnalisée ou d'utiliser les fonctions de Apache CommonsStringUtils.join().

23
Menno

Les méthodes String.split et StringUtils.join sont de bonnes alternatives.

Éclater:

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

Imploser:

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

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

16
EnKrypt

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

4
user1907906

Je ne connais pas bien PHP, mais je pense que String.split est Java équivalent à PHP explode. En ce qui concerne implode, la bibliothèque standart ne fournit pas une telle fonctionnalité. Il vous suffit de parcourir votre tableau et votre chaîne de construction en utilisant StringBuilder / StringBuffer . Ou vous pouvez essayer d'excellents Google GuavaSplitter et Joiner ou split/join méthodes de Apache Commons - StringUtils .

3
Ivan Sharamet

si vous parlez de la référence de String Class. afin que vous puissiez utiliser

sous-chaîne/scission

pour Explode & use String

concate

pour Implode.

0
Saunik Singh