StreamTokenizer et delimiteur
Dernière réponse : dans Programmation
Salut à tous
je suis débutant en java, j'implémente un soft qui parse des donnes dans un fichier pour les réécrire dans un second fichier avec quelques modifications.
Je parse ce fichier avec la classe Streamtokenizer et j'aimerais mettre comme délimiteur le caractère '-', comme ça lorsqu'il tombe sur '-' il passe au token suivant en sachant que le signe '-' fait partie de ce dernier.
J'ai vu qu'il existe une classe StringTokenizer qui prend en compte l'ajout de délimiteur dans son constructeur, mais je préfèrerais utiliser streamtokenizer.
Merci pour votre aide
++
je suis débutant en java, j'implémente un soft qui parse des donnes dans un fichier pour les réécrire dans un second fichier avec quelques modifications.
Je parse ce fichier avec la classe Streamtokenizer et j'aimerais mettre comme délimiteur le caractère '-', comme ça lorsqu'il tombe sur '-' il passe au token suivant en sachant que le signe '-' fait partie de ce dernier.
J'ai vu qu'il existe une classe StringTokenizer qui prend en compte l'ajout de délimiteur dans son constructeur, mais je préfèrerais utiliser streamtokenizer.
Merci pour votre aide
++
Autres pages sur : streamtokenizer delimiteur
Lassé par la pub ? Créez un compte
Je me suis résigné à utiliser StringTokenizer
j'ai une liste de chiffres (3 chiffres par ligne) et il y a un paquet de ligne.
Comme je dois à chaque fois intervertir les valeurs 2 par 2, j'ai décidé de créer tableau de String de 6 éléments (qui contient donc les chiffres de deux lignes). et faire une boucle juqu'à la fin des token.
Voici le code
il compile sans probleme mais à l'exécution, dans la console, j'ai bien le 1er token que je capture pas; ensuite j'ai les 3 prochains et ca s'arrete.
Qu'en pensez-vous?
J'ai deux autres questions:
Est ce qu'il faudra que je vide le tableau de String à chaque fois qu'il sera rempli ou pas ?
En ce qui concerne les délimiteurs, j'ai ajouté true à l'instruction car le signe '-' est un délimiteur mais il doit apparaitre dans la capture. Comme l'espace est aussi un délimiteur, il va me mettre également un espace dans la capture.. en toute logique ??
(en fait le signe '-' correspond au signe négatif, donc des fois c'est négatif et des fois positif)
Merci beaucoup
++
j'ai une liste de chiffres (3 chiffres par ligne) et il y a un paquet de ligne.
Comme je dois à chaque fois intervertir les valeurs 2 par 2, j'ai décidé de créer tableau de String de 6 éléments (qui contient donc les chiffres de deux lignes). et faire une boucle juqu'à la fin des token.
Voici le code
BufferedWriter bw = new BufferedWriter(new FileWriter(f_sysnoise,true)); String lin=br.readLine(); System.out.println(lin); String vec[]= new String[6]; while(lin!=null){ StringTokenizer stt = new StringTokenizer(lin," -",true); while(stt.hasMoreTokens()){ String mot=stt.nextToken();//le 1er ne sert à rien System.out.println(mot); for (int i=0;i<6;i++) { mot=stt.nextToken(); vec[i]=mot; bw.write(vec[1] +" "+ vec[0] +" "+ vec[3] +"\n"+ vec[2] +" "+ vec[5] +" "+ vec[4] + "\n"); System.out.println("mot"+i +" "+ mot); } }
il compile sans probleme mais à l'exécution, dans la console, j'ai bien le 1er token que je capture pas; ensuite j'ai les 3 prochains et ca s'arrete.
Qu'en pensez-vous?
J'ai deux autres questions:
Est ce qu'il faudra que je vide le tableau de String à chaque fois qu'il sera rempli ou pas ?
En ce qui concerne les délimiteurs, j'ai ajouté true à l'instruction car le signe '-' est un délimiteur mais il doit apparaitre dans la capture. Comme l'espace est aussi un délimiteur, il va me mettre également un espace dans la capture.. en toute logique ??
(en fait le signe '-' correspond au signe négatif, donc des fois c'est négatif et des fois positif)
Merci beaucoup
++
y'a que 16 lignes ... c'est relativement lisisble ...
BufferedWriter bw = new BufferedWriter(new FileWriter(f_sysnoise,true)); String lin=br.readLine(); System.out.println(lin); String vec[]= new String[6]; while (lin != null) { while(stt.hasMoreTokens()) { for (int i=0; i<6; i++) { String mot=stt.nextToken(); vec[i]=mot; } bw.write(vec[1] +" "+ vec[0] +" "+ vec[3] +"\n"+ vec[2] +" "+ vec[5] +" "+ vec[4] + "\n"); } }
Lassé par la pub ? Créez un compte