Aide : Split Java

[Fermé]
Signaler
-
Messages postés
16394
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
18 septembre 2021
-
Bonjour,
J'ai slipt un fichier texte :
Anna;Rampart
Claude;Turcotte
Jean;Merveilleux

while ((texte = a.readLine()) != null)
{
String [] str = texte.split(";");
}
str [0] me donne :
Anna
Claude
Jean

et str [1] me donne :
Rampart
Turcotte
Merveilleux

et j'aimerai stocké mon str[0] dans un autre tableau de string qui va s'appeler String [] Prenom dans le quel j'aurai :
Prenom [0] = Anna
Prenom [1] = Claude
Prenom [2] = Jean
etc...

aussi un String [] Nom dans lequel..
Nom [0] = Rampart
etc..

2 réponses

Messages postés
16394
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
18 septembre 2021
2 876
L'utilisation d'un tableau est maladroite ici car on ne peut pas savoir à l'avance (dans le cas général) le nombre de lignes que tu as dans ton fichier. Il vaut mieux utiliser une liste.

List<String> nom = new ArrayList<String>();
List<String> prenom = new ArrayList<String>();

while ((texte = a.readLine()) != null) 
{ 
    String[] str = texte.split(";");
    nom.add(str[0]);
    prenom.add(str[1]);
}

La confiance n'exclut pas le contrôle
while ((texte = a.readLine()) != null)
{
ligne++;
}

Oups, j'ai oublié de préciser que je dois le faire avec un tableau.. et j'ai déjà un compteur de ligne qui compte le nombre de ligne
Messages postés
16394
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
18 septembre 2021
2 876
Un compteur de lignes ne te sers à rien, pour construire le tableau tu dois connaître sa taille AVANT de commencer à le remplir, ce qui est impossible.

Si tu as absolument besoin d'un tableau, convertis ta liste en tableau, une fois la liste complètement remplie (et donc la taille du tableau connue).

String[] tab = list.toArray(new String[list.size()]);