Aide : Split Java

Fermé
FrancisLkp - 26 nov. 2013 à 23:56
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 27 nov. 2013 à 07:55
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

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
Modifié par KX le 27/11/2013 à 00:04
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
0
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
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
27 nov. 2013 à 07:55
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()]);
0