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 :

Controle qu'une zone est numérique


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 11
    Points : 13
    Points
    13
    Par défaut Controle qu'une zone est numérique
    Bonjour,
    Comment contrôler en java qu'un String est numérique, ie compris entre 00.00 et 20.00 et qui ne contient pas de caractère alphabétique ou autre (ex abc # ' etc ..) ?
    Merci d'avance

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    Avec une expression régulière: elle sont presques faites "exprès pour ça".

    La littérature sur celles-ci est abondante sur le forum et sur http://java.developpez.com/ tu trouveras un très bon tutorial ed Hugo Etiévant sur la question

    Exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String expr = "([0-1][0-9]\\.[0-9][0-9])|(20\\.00)";

  3. #3
    Membre habitué Avatar de erictoguem
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 150
    Points : 187
    Points
    187
    Par défaut avec un keylistener
    Tu peux aussi le faire avec un KeyListener, lorsqu'on entre un caractère, si ce n'est pas un chiffre ou le caractère point (pour la première fois biensur) ou une flèche de redirection ou encore un caractère d'échappement tu fais e.consume.
    Tu peux aussi gerer l'évènement lié au focus, là quand le contrôle perds le focus, tu testes si la valeur est correcte, si c'est pas le cas tu lui affiche un message d'erreur approprié et tu lui redonne le focus.

    Tout est listener

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 11
    Points : 13
    Points
    13
    Par défaut controle zone numérique
    En fait, ma zone est une note compris entre 0 et 20 qui peut être écrite avec ou sans centième de la forme :
    n ou ou nm ou n.m ou .nn ou nm.mm ou n.mm .
    Si je dois faire les exp, j'écris :
    "([0-9]) | ([0-1][0-9]) | ([0-1][0-9]\\.[0-9]) | ([0-1][0-9]\\.[0-9][0-9]) |
    (\\.[0-9]) | (\\.[0-9][0-9]) |(20) | (20\\.00)
    est ce correct ?

    je comprends pas trop le \\.

  5. #5
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    C'est correct... (si ce n'est qu'il manque 20.0 et peut-être d'autres cas: je nai pas vérifié que ton expression était exhaustive)

    Le \\. désigne le caractère '.': si tu oublies le double \\ devant, ce qui est cherché n'est pas un point mais "n'importe quel caractère" => cf. le tuto sur les expressions régulières

    Enfin, dernière remarque pour clarifier ton expression... le "ou" est commutatif

  6. #6
    Membre éprouvé Avatar de leminipouce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2004
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Janvier 2004
    Messages : 754
    Points : 1 253
    Points
    1 253
    Par défaut
    Sinon au moment ou tu veux enregistrer ta note, tu valide ton questionnaire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    double note = 0;
    try{
        note = Double.parseDouble(champNote.getText());
     
        if(note<0 || note > 20){
            throw(new NumberFormatException());
        }
    }catch(NumberFormatException e){
        //Affichage dans ton interface d'un astérisque sur le champ note et d'une info. stipulant les valeurs acceptées
    }

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

Discussions similaires

  1. fonction qui vérifie si une valeur est numérique?
    Par ryadh.naouar dans le forum C
    Réponses: 16
    Dernier message: 05/07/2007, 17h33
  2. Controler si une saisie est numerique
    Par Rodrick dans le forum Visual C++
    Réponses: 5
    Dernier message: 07/03/2007, 12h13
  3. Controle d'une zone de texte
    Par krfa1 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 24/04/2006, 09h42
  4. modifier source controle d'une zone de texte dans un état
    Par electrosat03 dans le forum Access
    Réponses: 3
    Dernier message: 20/03/2006, 11h04
  5. vérifier qu'une valeur est numérique
    Par kopofb dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 28/11/2005, 14h02

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