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 :

Effectuer un controle sur un String ayant des antislash


Sujet :

Langage Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 101
    Points : 38
    Points
    38
    Par défaut Effectuer un controle sur un String ayant des antislash
    Bonjour,
    Je vous écris car j'ai un souci.
    Un utilisateur doit entré une date dans un jTextField ayant la syntaxe suivante : jj/mm/aaaa.
    Je récupère ce champ en tant que String (pas besoin de le récupérer en tant que Date car je ne manipule pas par la suite).
    Concernant la vérification du jour, pas de problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    int jourint = Integer.parseInt(formdatecreation.substring(0,2));
                                        	if((jourint<=0)||(jourint>31)){
                                        		JOptionPane.showMessageDialog(framecompte, "Veuillez  saisir un jour compris entre 0 et 31");
                                            	jTFdatecreation.requestFocus();
                                            	return;
                                        	}
    formdatecreation est la date entré par l'utilisateur et recuepéré en tant que String.
    Le problème concerne le mois. J'aimerais vérifier s'il est bien compris entre 0 et 12. J'avais donc tenté, au départ ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    int moisint = Integer.parseInt(formdatecreation.substring(3,2));
                                        	if((moisint<=0)||(moisint>12)){
                                        		JOptionPane.showMessageDialog(framecompte, "Veuillez  saisir un mois correcte");
                                            	jTFdatecreation.requestFocus();
                                            	return;
    Mais sa plante, surement du a cause des antislash (caractère d'échappement si j'ai bien compris).
    J'ai donc utilisé une Regex pour enlevé les "/" comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String datecomptenoslash = formdatecreation.replaceAll("/", "_");
    puis j'ai rententé mais sa plante toujours. Enfaite, il vire bien les "/" mais c'est pas pour autant que je peux atteindre le mois sans que sa plante.

    J'ai continuer à chercher et je suis tombé sur StringTokenizer. J'ai donc créé un nouveau StringTokenizer comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    StringTokenizer stringtoken = new StringTokenizer(datecomptenoslash, "_");
    mais ensuite? j'ai essayé de l'afficher via un System.print.out sa passe pas ( me renvoie n'importe quoi). Idem avec un toString.
    Enfaite, il créé un tableau de String si j'ai bien compris? Du coup, je devrais pouvoir y accédez comme ceci : stringtoken[0]] non?!
    Il aime pas.
    Je sais pas si le StringTokenizer est la seule solution concernant mon problème et c'est pour cela que je fais appel a vous!

    Merci de votre aide. Je dois pas être bien loin de la solution quand même!!

  2. #2
    Membre éprouvé Avatar de Gardyen
    Homme Profil pro
    Bio informaticien
    Inscrit en
    Août 2005
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bio informaticien

    Informations forums :
    Inscription : Août 2005
    Messages : 637
    Points : 1 050
    Points
    1 050
    Par défaut
    euh déjà substring(3,2) devrait te renvoyer une IndexOutOfBoundsException non ?

    le 2e int est la fin du substring, pas sa longueur, donc nécessairement supérieur ou égal au premier

    et le caractère d'échappement c'est \
    Nous les geeks, c'est pas qu'on a une case en moins, c'est juste qu'on compte à partir de zéro.
    Plus les choses changent, plus elles restent les mêmes

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 101
    Points : 38
    Points
    38
    Par défaut
    Bonsoir,
    J'ai regardé la javadoc sur substring.
    Et j'ai résolu mon problème!
    En grande partie grâce à ta réponse.
    Je te remercie beaucoup.
    Voici comment j'ai procédé si sa peux aider d'autres personnes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    int moisint = Integer.parseInt(formdatecreation.substring(3,5));
                                        	System.out.println("le moisint est "+moisint);
     
                                        	if((moisint<=0)||(moisint>12)){
                                        		JOptionPane.showMessageDialog(framecompte, "Veuillez  saisir un mois correcte");
                                            	jTFdatecreation.requestFocus();
                                            	return;
                                        	}
    Voilà,
    Bonne nuit.

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

Discussions similaires

  1. Controles sur mon form - Avis des pros
    Par okoweb dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/10/2010, 16h33
  2. Formulaire ayant des antislashes
    Par mike_chti dans le forum Langage
    Réponses: 13
    Dernier message: 03/10/2008, 16h05
  3. Rendre visible des contrôles sur un Form ayant des zones transparentes
    Par ProgElecT dans le forum Vos contributions VB6
    Réponses: 8
    Dernier message: 20/09/2007, 19h25
  4. [C#2.0]Dupliquer des controles sur une autre form
    Par chnew dans le forum Windows Forms
    Réponses: 5
    Dernier message: 12/05/2006, 09h05
  5. Realiser des tests exhaustifs sur les String
    Par Sarrus dans le forum Langage
    Réponses: 9
    Dernier message: 07/07/2005, 11h52

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