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

Groovy Java Discussion :

Erreur affichage donnée liste "empty string"


Sujet :

Groovy Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2011
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2011
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Erreur affichage donnée liste "empty string"
    Bonjour,

    J'aimerais afficher les données (chiffres) saisie dans une liste. Mais lorsqu'une donnée est manquante (car pas saisie), j'ai un message d'erreur lors de l'affichage de ces données : "java.lang.NumberFormatException : empty string".
    J'ai donc fait une boucle pour vérifier qu'une donnée saisie dans la liste est vide ou pas. Mais la boucle ne fonctionne pas puisque j'ai toujours le message d'erreur ci-dessous :

    nbr_jour est le tableau (1 colonne, 4 champs) en java.util.list

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    first = nbr_jour[0];
    if(first != null || first != "") {
    firstFormated = first.toString()
    .replace(",", "") 
    .replace("[", "")   
    .replace("]", ""); 
    premier = firstFormated.toDouble()
    }
    else {
    premier = "0"
    }

    java.lang.NumberFormatException: empty String
    at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
    at java.lang.Double.valueOf(Unknown Source)
    at org.codehaus.groovy.runtime.DefaultGroovyMethods.toDouble(DefaultGroovyMethods.java:13163)
    at org.codehaus.groovy.runtime.dgm$787.invoke(Unknown Source)

    Avez vous une idée ou peut être une autre solution pour afficher les données de ce tableau sans avoir de message "empty Sting" ?

  2. #2
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    en s´assurant qu´elle n´est pas vide
    avec par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      if(first != null || first.trim() != "") 
    {
    }
    Eric

  3. #3
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 978
    Points
    7 978
    Par défaut
    On compares un string avec la méthode equals et non ==.

    Il faut aussi utiliser && et non || car si first est null alors nullpointerexception se produira.

    Par contre tu peux aussi le faire en faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(first != null && first.trim().equals("")) 
    {
    }
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(first != null && first.trim().length!=0) 
    {
    }
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Futur Membre du Club
    Inscrit en
    Décembre 2011
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2011
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Merci pour vos réponses.

    Après changement (rajout de trim) j'ai ce message d'erreur ci-dessous. Surement parce que le résultat est un chiffre entre crochet ? j’enlève ces crochets mais après vérification de la variable....

    No signature of method: java.util.ArrayList.trim() is applicable for argument types: () values: []
    Possible solutions: tail(), wait(), sum(), min(), grep(), wait(long)
    groovy.lang.MissingMethodException: No signature of method: java.util.ArrayList.trim() is applicable for argument types: () values: []
    Possible solutions: tail(), wait(), sum(), min(), grep(), wait(long)
    at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:55)
    at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:46)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112)
    Cela dit quand je passe par la méthode equals (sans trim), la boucle est toujours false. Que la variable soit vide ou pas, j'aboutis à un false et donc execution de else....

  5. #5
    Futur Membre du Club
    Inscrit en
    Décembre 2011
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2011
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    J'ai compris ce qui posait problème.

    Le message "empty string" était dû au todouble() qui ne supporte pas un string vide, du coup j'ai mis ma boucle juste avant, et cette fois ça marche.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    first = nbr_jour[0];
    firstFormated = first.toString()
    .replace(",", "") 
    .replace("[", "")   
    .replace("]", ""); 
    if(firstFormated != "") {
    premier = firstFormated.toDouble()
    }
    else {
    premier = 0
    }

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

Discussions similaires

  1. Erreur affichage données listbox
    Par egrazian dans le forum JSF
    Réponses: 2
    Dernier message: 26/08/2008, 09h28
  2. [Liste]Affichage données dans une liste
    Par Zartak dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 22/05/2007, 17h02
  3. [débutant] erreur "indice de liste hors limites(1)"
    Par lidouka dans le forum Langage
    Réponses: 2
    Dernier message: 13/12/2005, 14h31

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