IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

[Debutant(e)]StreamTokenizer: ne reconnait pas les floats!!


Sujet :

Entrée/Sortie Java

  1. #1
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 91
    Points : 48
    Points
    48
    Par défaut [Debutant(e)]StreamTokenizer: ne reconnait pas les floats!!
    Bonjour,
    J'utilise StreamTokenizer....
    Cependant, lorqu'il rencontre des chiffres de ce genre "1,312" il ne reconnait pas la virgule et du cout sépare 1 et 312....
    Y a til une solution?
    Merci





    [Modéré par Didier]
    Ajout de tag dans le titre
    Lire les règles du forum : Règles du forum Java

  2. #2
    Expert confirmé
    Avatar de Katyucha
    Femme Profil pro
    DevUxSecScrumOps Full Stack Bullshit
    Inscrit en
    Mars 2004
    Messages
    3 287
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Irlande

    Informations professionnelles :
    Activité : DevUxSecScrumOps Full Stack Bullshit

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 287
    Points : 5 075
    Points
    5 075
    Par défaut
    Je n'ai jamais eu ce problème....

    Fais un copier/Coller du code pour examiner ca
    Grave urgent !!!

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 95
    Points : 140
    Points
    140
    Par défaut
    Peut-être faudrait-il convertir les "," en "." ? Parceque 1,312 n'est pas un float.

  4. #4
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 91
    Points : 48
    Points
    48
    Par défaut
    et ya une méthode pour convertir les virgules en point?

  5. #5
    Membre expérimenté
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Points : 1 512
    Points
    1 512
    Par défaut
    le StreamTokenizer sépare des String, il ne peut pas savoir si ce sont ou non des float.
    il découpe selon des token. donc s'il coupe sur une ',' c'est surement que tu l'a ajouté à tes token.
    tu peux nous envoyer ton code stp ?
    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java
    "La liberté de tout être s'arréte là où commence celle de l'autre... Respecter l'autre, c'est préserver sa liberté d'être, de penser et de vivre"

  6. #6
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 91
    Points : 48
    Points
    48
    Par défaut
    voila:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    try{
    	StreamTokenizer st = new StreamTokenizer(new FileReader(fichier));	
    	st.ordinaryChar('+');
    	st.ordinaryChar('_');
    	st.ordinaryChar('\'');
    	st.ordinaryChar('!');
    	st.ordinaryChar('<');
    	st.ordinaryChar('>');
    	st.ordinaryChar('*');
     
    	boolean fini = false;
    	while( !fini ) {
    				int type = st.nextToken();
    				if (type == StreamTokenizer.TT_EOF) {
    					fini = true;
    					} else if (type == StreamTokenizer.TT_NUMBER) {
    							int cpu = (int)st.nval;
    							//String toto=st.sval;
    							System.out.println(cpu);
    						}else if (type == StreamTokenizer.TT_WORD) {
    										String word = st.sval;
    										//String toto=st.sval;
    										System.out.println(word);
    									}
    				}
    			} catch(IOException ex) {
    					System.out.println(ex);
    					System.exit(0);
    					}

  7. #7
    Membre expérimenté
    Avatar de viena
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    1 071
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 071
    Points : 1 512
    Points
    1 512
    Par défaut
    C bizarre qu'il te fasse 2 token or que la virgule n'est pas dans les separateurs
    Alors tu pourrais essayer de remplacer les ',' par des '.' dans ta string de départ... le probleme c que tu n'as pas de String...
    Sinon :
    Citation Envoyé par docJava
    replace
    public String replace(char oldChar,
    char newChar)
    Returns a new string resulting from replacing all occurrences of oldChar in this string with newChar.
    If the character oldChar does not occur in the character sequence represented by this String object, then a reference to this String object is returned. Otherwise, a new String object is created that represents a character sequence identical to the character sequence represented by this String object, except that every occurrence of oldChar is replaced by an occurrence of newChar.

    Examples:

    "mesquite in your cellar".replace('e', 'o')
    returns "mosquito in your collar"
    "the war of baronets".replace('r', 'y')
    returns "the way of bayonets"
    "sparring with a purple porpoise".replace('p', 't')
    returns "starring with a turtle tortoise"
    "JonL".replace('q', 'x') returns "JonL" (no change)

    Parameters:
    oldChar - the old character.
    newChar - the new character.
    Returns:
    a string derived from this string by replacing every occurrence of oldChar with newChar.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    File f = new File(fichier);
    String sDepart = f.toString();
    String sArrive = sDepart.replace(',','.');
    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java
    "La liberté de tout être s'arréte là où commence celle de l'autre... Respecter l'autre, c'est préserver sa liberté d'être, de penser et de vivre"

  8. #8
    Membre du Club
    Inscrit en
    Mai 2004
    Messages
    91
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 91
    Points : 48
    Points
    48
    Par défaut
    c qd meme bizard qu'il ne reconnaisse pas les virgules!!! grrr
    Ya pas un moyen d'ajouter ce caractere?
    parce que rajouter une fonction qui remplace les caracteres je trouve que ça fait un peu lourd...

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 95
    Points : 140
    Points
    140
    Par défaut
    Et en précisant que la virgule fait parti des mots, avec la méthode wordChars(int low, int hi) ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    st.wordChars( ',' ,  ',' );

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 24/11/2006, 12h21
  2. Combo ne reconnait pas les DVD
    Par mohamed amine dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 15/11/2006, 20h59
  3. Ne reconnait pas les drivers Oracle
    Par zuzuu dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 17/07/2006, 11h05
  4. Mon compilo ne reconnait pas les UINT8
    Par baert dans le forum C++
    Réponses: 11
    Dernier message: 08/02/2006, 16h08
  5. [Debutant(e)]Eclipse ne voit pas les sources
    Par uliss dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 04/08/2004, 09h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo