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,.........";
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,.........";
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);
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);
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;
}
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 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.