Séparer des éléments d'une chaîne de caractères

Résolu
Bycicle_x Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -

Bonjour à tous,

Afin de correctement travailler avec une chaîne de caractères reçue en entrée dans une fonction, j'aimerais la scinder afin de mettre chacune de ses valeurs dans un tableau. La chaîne de caractères que je reçois en entrée ressemble à quelque chose de ce genre:

1
2 3
4 5
6 7

Et j'aimerais en scinder chacune des valeurs afin de les faire rentrer dans un tableau qui ressemblera à ceci:

{1,2,3,4,5,6,7}

J'ai essayé la méthode

.split("\n")

qui n'a pas porté ses fruits car cela me donne un résultat sous la forme

{1,2 3,4 5,6 7}

Alors que j'aimerais que chacun de mes nombres soient séparés par une virgule.

Si quelqu'un sait me débloquer là dessus se serait super sympa :)

Bonne soirée/journée,

Bicycle_x
Windows / Chrome 112.0.0.0

A voir également:

3 réponses

PierrotLeFou
 

As-tu essayé .split() avec le séparateur ' ' ?

0
Bycicle_x Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   2
 

Bonjour,

Oui, cela ne fonctionne malheureusement pas mais merci pour la suggestion.

0
Bycicle_x Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   2
 

Ok j'ai résolu le problème par moi-même donc je vous poste la solution pour ceux qui rencontreraient le même problème à l'avenir.

file_decoupe = file.split("\n");
        List<Integer> nombres_separes = new ArrayList<>();

        for (String element : file_decoupe){
            String[] sous_liste = element.split(" ");
            for (String nombre : sous_liste){
                if (!nombre.equals("")){
                    nombres_separes.add(Integer.parseInt(nombre));
                }
            }

        }

Ici je split d'abord le String avec le "\n" puis je split à nouveau avec " " et enfin, si l'élément parcouru n'est pas vide, je l'ajoute à une ArrayList.

0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 

Bonjour,

On peut simplifier la combinaison split("\n") et split(" ") par une seule instruction split("\n| ") ou plus généralement utiliser split("\s") qui supprime aussi \r \t et \f

Voir la documentation de la classe Pattern pour savoir comment construire une expression régulière en Java (c'est ça qui est pris en paramètre de la méthode split)

https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/util/regex/Pattern.html


0