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

Résolu/Fermé
Bycicle_x Messages postés 15 Date d'inscription mercredi 31 mars 2021 Statut Membre Dernière intervention 25 avril 2023 - 25 avril 2023 à 00:20
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 25 avril 2023 à 05:46

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
25 avril 2023 à 01:07

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

0
Bycicle_x Messages postés 15 Date d'inscription mercredi 31 mars 2021 Statut Membre Dernière intervention 25 avril 2023 2
25 avril 2023 à 01:47

Bonjour,

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

0
Bycicle_x Messages postés 15 Date d'inscription mercredi 31 mars 2021 Statut Membre Dernière intervention 25 avril 2023 2
25 avril 2023 à 02:54

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 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
25 avril 2023 à 05:46

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