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

avec Java Discussion :

Tester si une chaine est un nombre


Sujet :

avec Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Tester si une chaine est un nombre
    Bonsoir,

    Je pense que ma requete va en faire sourire plus d'un, mais j'aimerais vraiment savoir comment tester si une string est un nombre ou pas ! J'ai un peu cherché dans la doc java, mais je ne m'en sors vraiment pas !

    Merci d'avance !

    [EDIT : oups, désolé, j'avais pas vu qu'il y avait une rubrique débutants ]

  2. #2
    Membre actif Avatar de Balbuzard
    Profil pro
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Points : 263
    Points
    263
    Par défaut
    Salut,

    Tu essaies de faire comme si c'est réellement un nombre, en le castant justement en nombre, et si ce n'est pas le cas, une Exception de type NumberFormatExcpetion sera levée. regarde ici si tu veux plus de détails là dessus. Tu peux faire un code du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    try{
    int monNombre=(int)inconnu;
    System.out.println("c'est bien un nombre");
    } catch(NumberFormatException nfe) {System.out.println("Ce n'était pas un nombre");}
    Le code dans le bloc try sera exécuté sauf si l'Exception NumberFormatException est rencontrée. Dans ce cas, le code dans le bloc catch est exécuté.
    ZORRO
    Plus Vengeur que Masqué

  3. #3
    Membre habitué
    Inscrit en
    Septembre 2008
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 234
    Points : 156
    Points
    156
    Par défaut
    Est-ce qu'on pourrais utiliser un String.valueOf() aussi ? Ca serais bien pour faire d'une pierre deux coups. Si le String est effectivement un nombre, on peut déjà récupérer la valeur.
    Développeur en devenir.

    A la recherche de toute source approfondissant Merise, UML, Java, l'objet, les design patterns hors GOF et le développement en général.

    Recherche également des informations sur les techniques de développement et les bonnes pratiques en terme de programmation en entreprise.

    "On en apprends beaucoup plus par la confrontation que par la conciliation"

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci Balbuzard ! On n'avait en fait jamais étudié le traitement des exceptions, mais ca a pas l'air si compliqué..

  5. #5
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    Si tu veux te débrouiller sans les Exceptions, tu peux toujours faire une fonction toi même :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    boolean isANumber(String s)
    {
         for(int i=0;i<s.length();i++)
              if(!Character.isDigit(s.charAt(i)) 
                   return false;
         return true;
    }
    Bonne journée

    Fred
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 252
    Points : 1 419
    Points
    1 419
    Par défaut
    Euh désolé, mais le code proposé ne compile pas. Pire, il n'a même pas une idée correcte. (le premier, du moins)

    Pour analyser un nombre mieux vaut faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public static boolean isANumber(String s) {
      if (s == null) return false;
      try {
        new java.math.BigDecimal(s);
        return true;
      } catch (NumberFormatException e) {
        return false;
      }
    }
    Au moins, avec ce code, pas de mauvaise surprise quand on utilise les points, exposant ou signes.

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

Discussions similaires

  1. Tester si une chaine est encodée en base64
    Par elitemedia dans le forum Langage
    Réponses: 2
    Dernier message: 20/06/2007, 22h51
  2. Tester si une chaine est un entier
    Par Tomimie dans le forum Delphi
    Réponses: 2
    Dernier message: 12/05/2007, 00h42
  3. [SQL] Tester si une chaine est au format date standard
    Par shaun_the_sheep dans le forum Oracle
    Réponses: 5
    Dernier message: 18/07/2006, 15h00
  4. Tester si une chaine est un nombre
    Par Grimdol dans le forum C
    Réponses: 15
    Dernier message: 24/06/2006, 12h44
  5. [langage] Comment tester si une chaine est vide
    Par |Bio dans le forum Langage
    Réponses: 4
    Dernier message: 04/05/2005, 16h05

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