Explication
Comme vous souhaitez utiliser Java 8 vous pouvez utiliser le code API de flux ( la documentation ).
C'est pourquoi vous devez d'abord transformer votre args
dans un tableau Stream<String>
en utilisant la méthode de l'utilité Arrays#stream
( la documentation ). Ensuite, vous divisez les arguments par =
en utilisant String#split
( la documentation ) et les rassembler ensuite dans un array
en utilisant Stream#toArray
( la documentation ).
Afin de traiter chaque valeur fractionnée comme une valeur normale (et non comme des données imbriquées), vous pouvez souhaiter aplatir les Stream
. Ainsi, au lieu de Stream<String[]>
vous voulez avoir une structure aplatie comme Stream<String>
. Pour ce faire, vous devez utiliser la fonction Stream#flatMap
méthode ( la documentation ).
Code
Voici une variante utilisant l'approche expliquée :
String[] data = Arrays.stream(args) // String
.map(arg -> arg.split("=")) // String[]
.flatMap(Arrays::stream) // String
.toArray(String[]::new);
Vous pouvez également mémoriser le motif à l'avance et l'utiliser ensuite. Pattern#splitAsStream
( la documentation ) :
Pattern patt = Pattern.compile("=");
List<String> data = Arrays.stream(args) // String
.map(patt::splitAsStream) // String[]
.flatMap(Arrays::stream) // String
.toArray(String[]::new);