142 votes

Comment convertir un String en ArrayList ?

Dans ma chaîne, je peux avoir un nombre arbitraire de mots séparés par des virgules. Je veux que chaque mot soit ajouté dans un ArrayList. Par exemple :

String s = "a,b,c,d,e,.........";

4voto

Gherbi Hicham Points 1420

Ok, je vais m'étendre sur les réponses ici puisque beaucoup de gens qui viennent ici veulent diviser la chaîne par un espace blanc . C'est comme ça que ça se passe :

List<String> List = new ArrayList<String>(Arrays.asList(s.split("\\s+")));

2voto

Andy Points 169

Si vous importez ou si vous avez un tableau (de type string) dans votre code et que vous devez le convertir en arrayist (bien sûr string), l'utilisation de collections est préférable :

String array1[] = getIntent().getExtras().getStringArray("key1"); or String array1[] = ... then

List allEds = new ArrayList(); Collections.addAll(allEds, array1);

2voto

Tony Nassar Points 21

Vous pourriez utiliser :

List<String> tokens = Arrays.stream(s.split("\\s+")).collect(Collectors.toList());

Vous devriez vous demander si vous avez vraiment besoin de la liste de tableaux (ArrayList) en premier lieu. Très souvent, vous allez filtrer la liste sur la base de critères supplémentaires, pour lesquels un Stream est parfait. Vous pouvez vouloir un ensemble ; vous pouvez vouloir les filtrer au moyen d'une autre expression régulière, etc. Java 8 fournit d'ailleurs cette extension très utile, qui fonctionnera sur n'importe quel objet de type CharSequence : https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html#splitAsStream-java.lang.CharSequence- . Puisque vous n'avez pas du tout besoin du tableau, évitez de le créer ainsi :

// This will presumably be a static final field somewhere.
Pattern splitter = Pattern.compile("\\s+");
// ...
String untokenized = reader.readLine();
Stream<String> tokens = splitter.splitAsStream(untokenized);

1voto

denolk Points 730

Si vous voulez convertir un string en un Liste de tableaux Essayez ceci :

public ArrayList<Character> convertStringToArraylist(String str) {
    ArrayList<Character> charList = new ArrayList<Character>();      
    for(int i = 0; i<str.length();i++){
        charList.add(str.charAt(i));
    }
    return charList;
}

Mais je vois un tableau de chaînes de caractères dans votre exemple, donc si vous vouliez convertir un tableau de chaînes de caractères en un tableau de chaînes de caractères, vous devriez le faire. tableau de chaînes en Liste de tableaux utilisez ça :

public static ArrayList<String> convertStringArrayToArraylist(String[] strArr){
    ArrayList<String> stringList = new ArrayList<String>();
    for (String s : strArr) {
        stringList.add(s);
    }
    return stringList;
}

1voto

Soudipta Dutta Points 109

Prenons une question : Inverser une chaîne de caractères. Je vais le faire en utilisant stream().collect(). Mais d'abord, je vais transformer la chaîne de caractères en une ArrayList.

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

        String a = "Gini Gina  Proti";

        List<String> list = new ArrayList<String>(Arrays.asList(a.split("")));

        list.stream()
        .collect(Collectors.toCollection( LinkedList :: new ))
        .descendingIterator()
        .forEachRemaining(System.out::println);

    }}
/*
The output :
i
t
o
r
P

a
n
i
G

i
n
i
G
*/

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