web-dev-qa-db-fra.com

Conversion de la liste <String> en chaîne [] in Java

Comment convertir un liste de chaîne en un tablea ? Le code suivant renvoie une erreur.

public static void main(String[] args) {
    List<String> strlist = new ArrayList<String>();
    strlist.add("sdfs1");
    strlist.add("sdfs2");
    String[] strarray = (String[]) strlist.toArray();       
    System.out.println(strarray);
}

Erreur:

Exception in thread "main" Java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
    at test.main(test.Java:10)
69
Christian

Tu veux

String[] strarray = strlist.toArray(new String[0]);

Voir ici pour la documentation et notez que vous pouvez également appeler cette méthode de telle sorte qu'elle remplisse le tableau transmis, plutôt que de l'utiliser pour déterminer le type à renvoyer. Notez également que, si vous imprimez votre tableau, vous préféreriez peut-être

System.out.println(Arrays.toString(strarray));

puisque cela va imprimer les éléments réels.

98
jjujuma
public static void main(String[] args) {
    List<String> strlist = new ArrayList<String>();
    strlist.add("sdfs1");
    strlist.add("sdfs2");

    String[] strarray = new String[strlist.size()]
    strlist.toArray(strarray );

    System.out.println(strarray);


}
18
Paul

List.toArray() renvoie nécessairement un tableau d'objets. Pour obtenir un tableau de String, vous devez utiliser la syntaxe de transtypage:

String[] strarray = strlist.toArray(new String[0]);

Voir le javadoc pour Java.util.List pour plus.

3
crazyscot

J'ai conçu et mis en œuvre Dollar pour ce type de tâches:

String[] strarray= $(strlist).toArray();
2
dfa

String [] strarray = strlist.toArray (new String [0]);

si vous voulez que la liste soit convertie en chaîne, utilisez StringUtils.join (slist, '\ n');

0
phil

espérons que cela pourra aider quelqu'un:

Liste liste = ..;

String [] stringArray = list.toArray (new String [list.size ()]);

excellente réponse à partir d'ici: https://stackoverflow.com/a/4042464/1547266

0
Arthur