Parser un fichier text en java (tokens)

theunknown0o Messages postés 14 Date d'inscription vendredi 12 novembre 2004 Statut Membre Dernière intervention 1 juillet 2010 - 31 janv. 2009 à 18:11
chris081 Messages postés 90 Date d'inscription mercredi 24 décembre 2008 Statut Membre Dernière intervention 4 février 2009 - 31 janv. 2009 à 18:50
Bonjour,
j'aimerai avoir un code qui pourrait parser en java un fichier texte
le texte: ligne 1==> ab=X cd=Y ef=Z
j'aimerai avoir a la fin ke les valeurs X, Y, Z comme resultat du code
merci

3 réponses

chris081 Messages postés 90 Date d'inscription mercredi 24 décembre 2008 Statut Membre Dernière intervention 4 février 2009
31 janv. 2009 à 18:44
Salut
Il y a une classe qui s'appelle StringTokenizer. Il y a aussi une classe qui s'appelle Character. Cet objet contient une méthode nommée isUpperCase(char c).

Donc,:

String s = "ligne 1==> ab=X cd=Y ef=Z";

StringTokenizer tk = new StringTokenizer (s, s, true);
char [] c = new char[s.length()];

int compte = 0;

while (tk.hasMoreElements()){

Character d = (Character) tk.nextElement();

if (Character.isUpperCase(d)){

c[compte] = d.charValue();
compte++;
}
}

Ensuite, pour afficher, tu boucle ton tableau de char de la façon habituelle:
for (int i = 0; i<compte; i++){

System.out.println (c[i]);
}

Note: tu NE dois pas inclure la variable compte à l'intérieur du corps du while, car la variable compte sert a compter le nombre de caractères 'valides'. Elle sert également à épargner du temps processeur, en t'évitant de devoir boucler sur tout le tableau de char, ce qui évite de devoir inclure une structure de condition if à l'intérieur du corps de la boucle for.

J'espère que c'est ce à quoi tu t'attendais comme réponse.
chris081


<hr width ="100%" />

Est-ce que les femmes pètent autant que les hommes ?
Oui. Cependant, les hommes semblent en tirer plus de gloire que les femmes.

Retrouvez l'intégrale ici</compte;>
0
chris081 Messages postés 90 Date d'inscription mercredi 24 décembre 2008 Statut Membre Dernière intervention 4 février 2009
31 janv. 2009 à 18:47
Arfff...

La signature de la boucle for ne s'est pas affichée comme il faut:

for (int i=0;i<= compte;i++){

System.out.println (c[i]);

}

chris081

<hr width="100%" />

Est-ce que les femmes pètent autant que les hommes ?
Oui. Cependant, les hommes semblent en tirer plus de gloire que les femmes.

Retrouvez l'intégrale ici
0
chris081 Messages postés 90 Date d'inscription mercredi 24 décembre 2008 Statut Membre Dernière intervention 4 février 2009
31 janv. 2009 à 18:50
Bon, probablement tapé trop vite. Il y a une erreur dans le code:
char temp = d.charValue();

if (Character.isUpperCase(temp)){

c[compte] = temp;

compte++;

chris081

<hr width="100%" />

Est-ce que les femmes pètent autant que les hommes ?
Oui. Cependant, les hommes semblent en tirer plus de gloire que les femmes.

Retrouvez l'intégrale ici
0
Rejoignez-nous