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

Langage Java Discussion :

problème de conversion string > int


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2012
    Messages : 324
    Points : 13
    Points
    13
    Par défaut problème de conversion string > int
    Bonjour,
    j'ai un fichier qui contient une seule ligne qui est égale à 648,
    cette informations que j'ai générée depuis une commande shell m'est très importante et je voudrai la convertir en entier pour pouvoir l'utiliser dans mon code java.
    pour la conversion je fais ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    int id=0;
    InputStream ips=new FileInputStream("/var/tmp/interface_id.txt"); 
    	 InputStreamReader ipsr=new InputStreamReader(ips);
    	 BufferedReader br=new BufferedReader(ipsr);
             String ligne="";
     
             while(((ligne=br.readLine())!=null))
               {
                  id=Integer.parseInt(ligne);
               }
    mais à l'exécution je reçois la fameuse erreur "Number Format exception" que je n'arrive pas à coriger ni d'ailleurs à comprendre.
    le problème est que j'ai utlisé cette technique me pose un problème depuis que j'ai commencé à travailler sur ce projet, parfois ça fonctionne et parfois non. J'aimerai savoir comment y remédier une bonne fois pour toute.

    Merci d'avance.

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    affiche la ligne (System.out.println) avant d'essayer de la convertir en String, au moins tu saura ce que tu as lu. Normalement, le message d'erreur inclu aussi le texte que tu essaie de parser. Je gage que tu lit un fichier ou une ligne vide.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2012
    Messages : 324
    Points : 13
    Points
    13
    Par défaut
    d'après le message d'erreur, la ligne n'est pas vide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Exception in thread "Thread-1" java.lang.NumberFormatException: For input string: "648 "
    	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    	at java.lang.Integer.parseInt(Integer.java:492)
    	at java.lang.Integer.parseInt(Integer.java:527)
    	at Trafic_Internet.Total_Traffic_History$snmpget.interfaceID(Total_Traffic_History.java:170)
    	at Trafic_Internet.Total_Traffic_History$snmpget.run(Total_Traffic_History.java:141)

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Tu as un espace en trop après le chiffre. Soit tu ne met pas d'espace dans ton fichier, soit tu met ceci dans ton code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     id=Integer.parseInt(ligne.trim());

  5. #5
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2012
    Messages : 324
    Points : 13
    Points
    13
    Par défaut
    merci à priori l'erreur à disparue mais j'ai d'autre erreurs dans mon code, donc je vais laisser la discussion ouverte jusqu'à ce que je les corrige, pour être sûre que le problème n'est pas posé par cette exception.

  6. #6
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2012
    Messages : 324
    Points : 13
    Points
    13
    Par défaut
    j'ai une autre question qui n'est pas reliée à cette discusion, je sais pas si j'ai le droit de la poser ici ou non. mais bon je me lance: j'ai une classe java que j'aimerai lancer dans un thread de manière à ce qu'elle s'exécute toutes les 5 secondes.

    j'ai ajouter à l'entête "extends Thread" et j'ai aussi ajouté la methode run().
    l'ennui est que le point d'exécution de la classe est son constructeur. c'est à dire si je veux tester le focntionnement de la classe il suffit de d'appler son constructeur dans la classe main puis le constructeur se charge d'appeler les autres classes et les autres méthodes nécéssaires (afin de ne rien écrire d'autre dans la méthode main).
    comment faire pour instancier ce constructeur dans la méthode run () ??

  7. #7
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public static void main(String[] args){
     
       new Thread(){
         public void run(){
              new TaClasse();
         }
       }.start();
    }

    TaClasse n'a pas besoin d'implémenter Runnable ou etendre Thread
    C'est une mauvaise pratique de faire tout le travail dans un constructeur. Le but du constructeur, c'est d'initialiser. Au pire, pour limiter le main, on fait ce genre de chose en général

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public static void main(String[] args){
     
       new TonApplication(args).process();
    }

  8. #8
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Août 2012
    Messages : 324
    Points : 13
    Points
    13
    Par défaut
    j'avoue que je n'ai jamais vue cette technique, en Tout cas merci, je vais tester tout celà.

Discussions similaires

  1. conversion string en int
    Par edenyorke dans le forum C
    Réponses: 15
    Dernier message: 29/10/2006, 20h49
  2. [C#] Conversion string to int
    Par OpenGG dans le forum C#
    Réponses: 2
    Dernier message: 23/08/2006, 19h08
  3. Problème de conversion string->int
    Par seheiahs dans le forum Langage
    Réponses: 4
    Dernier message: 28/06/2006, 10h42
  4. conversion string vers int
    Par mathher dans le forum C++
    Réponses: 4
    Dernier message: 14/04/2006, 17h52
  5. [FLASH MX 2004] conversion string en int.
    Par calfater dans le forum Flash
    Réponses: 3
    Dernier message: 26/05/2004, 15h00

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