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

Java Discussion :

[Math]Tester si un nombre est un entier positif


Sujet :

Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4
    Points : 4
    Points
    4
    Par défaut [Math]Tester si un nombre est un entier positif
    Bonjour,

    ce code test si 'age' est un entier positif mais "matches("^\\s*\\d+\\s*$")" est une methode javascript.
    Je cherche l'équivalent pour les types String java
    merci.

    if (!age.matches("^\\s*\\d+\\s*$"))

    merci!

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Points : 342
    Points
    342
    Par défaut
    Salut,

    tu veux savoir si une chaine contient un entier positif ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    try {
    	monInt =  Integer.parseInt(maChaine);
            // ici la chaine contien un entier donc :
            if(monInt >= 0) {
                    // maChaine contient bien un entier positif
            }
    } catch (NumberFormatException ex){
    	// si tu es ici, ta chaine ne contient pas un entier
    }

  3. #3
    Membre éclairé Avatar de Pollux
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    706
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 706
    Points : 680
    Points
    680
    Par défaut
    Je comprends pas bien..

    Tu veux savoir si les données rentrées sont positives?

    Tu peux utiliser la classe StringTokenizer (voir ici )

    Elle te permet de déterminer un délimiteur et de ressortir tes données... T'as plus qu'à les tester ensuite..

    J'espère que ca peut t'aider
    Pour chaque langage existe une faq / N'oubliez pas de lire les règles du forum

  4. #4
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Ben depuis la version 1.4 de Java il faut faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (!age.matches("^\\s*\\d+\\s*$"))
    Ce que tu viens d'ecrire en fait
    Romain Guy
    Android - Mon livre - Mon blog

  5. #5
    Membre régulier Avatar de Buch'
    Inscrit en
    Avril 2005
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 61
    Points : 73
    Points
    73
    Par défaut
    que pense tu de çà ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     monEntier = Integer.parseInt(maString) <-- il faut gérer le ParseException
    ensuite tu n'as plus qu'à tester sa supériorité à 0 si tu obtiens un entier.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    j'ai JDK 1.5 mais if (!age.matches("^\\s*\\d+\\s*$")) ne fonctionne pas

  7. #7
    Gfx
    Gfx est déconnecté
    Expert éminent
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Points : 8 178
    Points
    8 178
    Par défaut
    Cela ne compile pas ou cela ne marche pas a l'execution ? A premiere vue je ne vois aucun probleme mais je n'ai pas utilise les regex du JDK depuis un moment. Verifie la syntaxe avec la doc des classes Pattern et Matcher.
    Romain Guy
    Android - Mon livre - Mon blog

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 55
    Points : 43
    Points
    43
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    final Pattern patter = Pattern.compile("^\\s*\\d+\\s*$");
    Matcher mat = pattern.matcher(age.toString());
    if (!mat.matches()) {
      // c'est OK 
    } else {
      // Erreur , entier non positif
    }
    Ceci devrait surement aller ; ou Sinon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    try {
        int i = Integer.parseInt(age.toString()) ;
        if ( i <= 0 ) {
           // entier pas positif
       }
    } ( catch Exception e) {
     // pas entier
    }

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 46
    Points : 24
    Points
    24
    Par défaut
    euh moi je fais tout connement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if(chaine.matches("[0-9]+")){
    // C'est un entier positif
    int entier=Integer.parseInt(chaine);
    }else{
    // Ce n'est pas un entier positif
    }
    pas besoin d'exceptions ^^

  10. #10
    Membre chevronné
    Profil pro
    Fabrication GED
    Inscrit en
    Octobre 2005
    Messages
    1 405
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Points : 1 958
    Points
    1 958
    Par défaut
    Skero > Ouai ça peut le faire aussi mais il me semble que ça ne gère l'élimination des caractères blancs en début et fin de chaine tel que "^\\s*\\d+\\s*$"
    Et je viens de tester : si on ajouter des caractères blancs ( espace pour mon exemple ), on se prend un NumberFormatException.

Discussions similaires

  1. [Sql ] Tester si un nombre est négatif
    Par tibyann dans le forum Oracle
    Réponses: 7
    Dernier message: 12/03/2009, 10h06
  2. comment tester si un nombre est premier en php ?
    Par Shyboy dans le forum Langage
    Réponses: 1
    Dernier message: 09/03/2007, 17h08
  3. Tester si un nombre est un entier ou un décimal
    Par sab_etudianteBTS dans le forum ASP
    Réponses: 5
    Dernier message: 20/02/2007, 16h52
  4. [VB6] Un nombre est il entier
    Par jerzy59 dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 23/05/2006, 16h10
  5. [XSL] Tester si la valeur est un entier dans un xml
    Par MrMaze dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 23/07/2003, 04h35

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