Probleme avec une conversion en java
Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

Probleme avec une conversion en java



  1. #1
    inviteea041823

    Probleme avec une conversion en java


    ------

    Bonjour , je fais un programme en java
    Code:
    public void somme(String[][] D)
        {
            
            int c=0;
             for(int j=0;j<C;j++)
            {
                if (D[0][j]==null)
                    continue;
                else
                { 
                    for(int i=0;i<L;i++)
                    {
                        if(D[0][j].equals(D[i][0]))
                        {
                            System.out.println(D[i][j]);
                             int x= Integer.parseInt(D[i][j]);
                            c =c + x;
                        }
                    }
                    // System.out.println(D[0][j] +"le nombre =" + c);
                }
            }
        }
    ci dessus le code le probleme c'est qu'il me génère une exception qui est la suivante
    Code:
    Exception in thread "main" java.lang.NumberFormatException: For input string: ""
            at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
            at java.lang.Integer.parseInt(Integer.java:468)
            at java.lang.Integer.parseInt(Integer.java:497)
            at my.contacteditor.repertoire.CSVFILE1.somme(CSVFILE1.java:319)
            at my.contacteditor.repertoire.CSVFILE1.<init>(CSVFILE1.java:54)
            at my.contacteditor.repertoire.CSVFILE1.main(CSVFILE1.java:329)
    Pour moi le probleme doit venir de la conversion au niveau de Integer.parseInt c'est comme s'il ne le voyait et moi j'arrive à l'afficher la donnée sur l'écran.
    Si quelqu'un a une idée j'aimerai bien qu'il m'aide .
    Merci

    -----

  2. #2
    invite79d10163

    Re : Probleme avec une conversion en java

    Bonjour,

    Tu as essayer en mettant les deux arguments à la fonction ParseInt(string s, int radix) ? Ou bien elle prend peut être le deuxieme argument par défaut égal à 10... A voir

  3. #3
    inviteea041823

    Re : Probleme avec une conversion en java

    Bonjour skydancer
    oui je vien d'essayer avec l'autre argument mais j'ai toujours l'exception .
    merci d'avoir repondu

  4. #4
    invite79d10163

    Re : Probleme avec une conversion en java

    Désolé je n'avais pas bien vu le message d'erreur. En fait le problème est que : dans ton tableau de string il y en a un qui est en quelque sorte vide : il est égal à "". Ceci fait planter la fonction car ce n'est pas une représentation d'un entier. Si tu met par exemple "mot" dans ton tableau tu auras la même erreur. Tu devrais faire un test avant de réaliser la conversion, du genre si D[i][j] n'est pas égal à "". ou bien t'assurer que toutes les valeur dans D sont bien des entiers. Tu peux aussi "catcher" l'exception pour eviter le message d'erreur.

  5. A voir en vidéo sur Futura
  6. #5
    inviteea041823

    Re : Probleme avec une conversion en java

    Bon j'ai vu ou se trouvait l'erreur pour ceux que cela interesse l'erreur venait du fait qu'il y avait des données apparatenant au tableau qui étaient vide , il faudrait ajouter un if de telle sorte si D[i][j].equals("") , il continue .
    Bonne soirée

  7. #6
    inviteea041823

    Re : Probleme avec une conversion en java

    Citation Envoyé par skydancer Voir le message
    Désolé je n'avais pas bien vu le message d'erreur. En fait le problème est que : dans ton tableau de string il y en a un qui est en quelque sorte vide : il est égal à "". Ceci fait planter la fonction car ce n'est pas une représentation d'un entier. Si tu met par exemple "mot" dans ton tableau tu auras la même erreur. Tu devrais faire un test avant de réaliser la conversion, du genre si D[i][j] n'est pas égal à "". ou bien t'assurer que toutes les valeur dans D sont bien des entiers. Tu peux aussi "catcher" l'exception pour eviter le message d'erreur.
    Merci pour la réponse rapide .
    bonne soirée

  8. #7
    invite105b4118

    Re : Probleme avec une conversion en java

    Bonjour,

    ceci peut (et doit) etre fait grace aux exceptions : il suffit de les gérer.
    Code:
     
    int x = 0;  //initialisation de x
    try {
        x = Integer.parseInt(D[i][j]);
    } catch (Exception e) {
        x = 0;   //valeur par défaut
        System.out.println(D[i][j] + " is not a number");
    }
    cela simplifiera beaucoup ton code : tu n'as pas à tester tous les cas de figure (null, String vide, ...) les exceptions sont là pour ca.

    Pour aller plus vite dans la double boucle : n'initialise pas x à chaque fois mais fait le en dehors des boucles.


    PS : Integer.parseInt(s); est équivalent à Integer.parseInt(s, 10); donc il ne sert à rien de spécifier le deuxieme argument à moins que l'on parse des nombres d'une autre base (2, 8, 16, ...).

  9. #8
    inviteea041823

    Re : Probleme avec une conversion en java

    Bonjour Aneldo
    je te remercie beaucoup , je vais utiliser ton code .
    bonne journée

  10. #9
    invite105b4118

    Re : Probleme avec une conversion en java

    de rien Bacou , bonne jounée.

Discussions similaires

  1. [JAVA] Problème avec JRE
    Par invitee3365b66 dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 29/06/2007, 13h44
  2. Probleme avec un prog en java
    Par inviteea041823 dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 12/06/2007, 15h08
  3. problème avec java
    Par invite0cbe5157 dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 04/02/2007, 01h52
  4. Processeur avec Java
    Par invite24357dd0 dans le forum Matériel - Hardware
    Réponses: 2
    Dernier message: 31/01/2007, 19h17
  5. gros problème avec des logiciels java
    Par inviteca0aee8d dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 08/07/2006, 20h54
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...