next up previous contents
suivant: Lecture écriture formatée monter: Entrées/Sorties précédent: Conversion   Table des matières

StreamTokenizer

La classe StreamTokenizer réalise un analyseur lexical très simple. Cette analyseur considère plusieurs types de tokens: On peut récupérer le type du token la variable d'instance ttype, la valeur numérique dans nval et la valeur de la String dans sval. La fonction qui appelle l'analyseur est nextToken.

On peut redéfinir les divers caractères spéciaux qui servent de délimiteurs. Dans l'exemple qui suit, wordChars définit les caractères pour les mots, resetSyntax remet à vide tous les caractères spéciaux, whitespaceChars définit les caractères qui servent de délimiteurs pour les mots.



transparent
Tokenizer


import java.io.*;
class Lire{
  public static void main(String[] args)throws IOException{
    StreamTokenizer lec= new StreamTokenizer(
              new InputStreamReader(System.in));
    lec.resetSyntax();
    lec.parseNumbers();
    lec.whitespaceChars(0,' ');
    lec.wordChars('A','Z');
    lec.wordChars('a','z');
    int i;
    boolean fin=false;//...


transparent
Boucle principale


  while(! fin){
        i=lec.nextToken();
        switch (lec.ttype){
        case StreamTokenizer.TT_EOF: 
            fin=true; break;
        case StreamTokenizer.TT_NUMBER:
            i=(int) lec.nval; 
            System.out.println("lu nombre:" + i);break;
        case StreamTokenizer.TT_WORD:
            System.out.println ("lu mot:" +lec.sval);
            break;
        default: 
            System.out.println ("lu autre:" +(char)i);
        }
    }
  }
}




Sous-sections

Hugues Fauconnier 2002-01-11