123 votes

Convertir String[] en chaîne séparée par des virgules en java

J'en ai un. String[]

String[] name = {"amit", "rahul", "surya"};

Je veux envoyer le nom comme paramètre dans une requête sql à l'intérieur de la clause IN. alors comment puis-je convertir dans un format

'amit','rahul','surya'

20 votes

Qu'en est-il String[] name = {"O'Neill"};

0 votes

Veuillez changer la réponse acceptée par la réponse la plus votée

234voto

Joeri Hendrickx Points 6957

Vous pouvez soit écrire vous-même une méthode simple, soit utiliser l'un des divers utilitaires existants.

Personnellement, j'utilise apache StringUtils ( StringUtils.join )

edit : dans Java 8, vous n'avez plus besoin de cela du tout :

String joined = String.join(",", name);

3 votes

Exactement ! Vous pouvez même définir vos propres délimiteurs : StringUtils.join(names,',');

6 votes

String list = "'" + StringUtils.join(names,"','") + "'"; cela vous donnerait les cotations uniques nécessaires à la requête SQL.

0 votes

Pour Android : TextUtils.join(",", stringArrayOfEmails)

89voto

Keith Entzeroth Points 1979

Les développeurs Android sont probablement à la recherche de TextUtils.join

Docs Android : http://developer.Android.com/reference/Android/text/TextUtils.html

Code :

String[] name = {"amit", "rahul", "surya"};
TextUtils.join(",",name)

66voto

Christopher Perry Points 7972

Sympathique et simple : mais java8 requis !

String result = String.join(",", names);

47voto

NPE Points 169956
StringBuilder sb = new StringBuilder();
for (String n : name) { 
    if (sb.length() > 0) sb.append(',');
    sb.append("'").append(n).append("'");
}
return sb.toString();

1 votes

@Bmoeller Avez-vous essayé TextUtils.join(...) ? Je pense qu'un code d'une ligne est encore mieux et plus simple que cinq.

31voto

Nico Huysamen Points 4700
if (name.length > 0) {
    StringBuilder nameBuilder = new StringBuilder();

    for (String n : name) {
        nameBuilder.append("'").append(n.replace("'", "\\'")).append("',");
        // can also do the following
        // nameBuilder.append("'").append(n.replace("'", "''")).append("',");
    }

    nameBuilder.deleteCharAt(nameBuilder.length() - 1);

    return nameBuilder.toString();
} else {
    return "";
}

10 votes

Alors j'aurais fait un tas de chèques. J'explique juste le concept, je ne donne pas l'exemple du sauve-qui-peut.

3 votes

Encore une fois, des concepts... Et merci pour le vote négatif. Mais voilà, c'est réparé.

0 votes

Merci mon pote, tu m'as sauvé la mise, mais si cela ne te dérange pas, tu peux aussi donner la réponse de @Bart Kiers, car je risque de me retrouver dans cette situation et je suis nouveau dans la programmation, s'il te plaît.

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