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 :

Reconnaitre une expression régulière


Sujet :

Langage Java

  1. #1
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2006
    Messages : 301
    Par défaut Reconnaitre une expression régulière
    Bonjour,

    Je travaille sur un fichier que je lis ligne par ligne. Cela fonctionne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     BufferedReader in = new BufferedReader(new FileReader(args[0]));
     String str = new String();
     
    		    while ((str = in.readLine()) != null) 
    		            System.out.println(str);
    Si j'ajoute la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        System.out.println(str.codePointCount(0, str.length()));
    j'obtient une exception :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java.lang.NullPointerException
    D'où vient cette exception?
    merci pour votre aide

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

    Informations professionnelles :
    Activité : Fabrication GED

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 405
    Par défaut
    Je parie que tu as ajouté cette ligne après le System.out.println(str) qui se trouve dans la boucle.

    Rajoute des accolades englobant tes deux lignes, et tu verras que ça merchera beaucoup mieux.

    Pour info, si te ne mets pas d'accolade, SEULE la ligne qui suit fait partie de la boucle !! La deuxième n'en fait pas partie, et vue que ta boucle s'arrête quand la ligne est à null...

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2006
    Messages : 301
    Par défaut
    Merci beaucoup et désolé j'avais pas fait attention

    j'ai un autre petit problème
    voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        char a = str.charAt(0);
        String ar = String.valueOf(a);
        if (ar.equals("a")){
     
    				    }
    je voudrais dire que si ar = a alors je passe à la ligne suivante
    mais je ne sais pas comment faire

  4. #4
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2006
    Messages : 301
    Par défaut
    je ne sais vraiment pas comment faire

    quelqu'un peut m'aider ?

  5. #5
    Membre chevronné Avatar de Scorpyosis
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2004
    Messages : 365
    Par défaut
    Quel est le problème ? erreur de compilation ? exception ?

  6. #6
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2006
    Messages : 301
    Par défaut
    en faite je ne sais pas comment dire de passer à la ligne suivante si ar = a

    quelle est l'instruction ?

  7. #7
    Membre chevronné Avatar de Scorpyosis
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2004
    Messages : 365
    Par défaut

    Bah tu l'a bien écrit ?! si ar vaut "a", la condition est vraie, puis le code entre les accolades est exécuté....

  8. #8
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2006
    Messages : 301
    Par défaut
    c'est justement ce que je dois mettre entre les accolades que je ne sais pas écrire.

    je voudrais passer à la ligne suivante dans mon fichier si le premier caractére du fichier est a.

  9. #9
    Membre chevronné Avatar de Scorpyosis
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2004
    Messages : 365
    Par défaut
    bah pour relire tu refais un readline().... mais bon je te conseille plutôt que de lire la ligne suivante quand c'est "a" de faire ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     while ((str = in.readLine()) != null) 
    {
      if(!str.equals("a"))  //si différent de "a" on fait un traitement particulier
      {
     
      }
    }
    car si tu lis un ligne dans le if il faut retester qu'elle n'est pas null etc... donc c'est pas top au niveau algorithmique.

  10. #10
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2006
    Messages : 301
    Par défaut Expression régulière
    Merci beaucoup

    je voudrais pouvoir reconnaitre un groupe de lettre dans mon string
    j'ai fais une recherche sur internet et j'ai trouvé cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Pattern p = Pattern.compile("mot");
       Matcher m = p.matcher(s);
       boolean b = m.matches();
       System.out.println("trouvé = "+b);
    le groupe de lettre "mot" apparait bien dans ma chaine de caractère mais le booleen est toujours false.

    il doit y avoir une erreur de syntaxe dans l'expression régulière
    Non ?
    Merci

  11. #11
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    Bonsoir,
    pourquoi ne pas utiliser la méthode contains de la classe String ? c'est plus simple ,non ?

    Voici un exemple de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    boolean b=s.contains("mot");


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  12. #12
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2006
    Messages : 301
    Par défaut
    effectivement
    merci

    est ce que c'est possible avec cette méthode de mettre en couleur l'élement reconnu dans ma chaine ???

  13. #13
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    Citation Envoyé par sissi25
    est ce que c'est possible avec cette méthode de mettre en couleur l'élement reconnu dans ma chaine ???
    Non pas avec contains ni une autre méthode d'ailleurs : tu dois créer ton propre code pour cela mais là on sort un peu du sujet du topic...


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  14. #14
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2006
    Messages : 301
    Par défaut
    ok merci

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

Discussions similaires

  1. [EXP] Evaluation dans une expression régulière
    Par SergentHeinz dans le forum Langage
    Réponses: 7
    Dernier message: 10/11/2005, 19h17
  2. Une expression réguliére
    Par BRAUKRIS dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 09/09/2005, 21h14
  3. Réponses: 6
    Dernier message: 17/08/2005, 13h38
  4. Problème sur une expression régulière
    Par Verbal-Quint dans le forum Langage
    Réponses: 6
    Dernier message: 12/11/2004, 11h54
  5. [Regex] Vérifier qu'une chaîne respecte une expression régulière
    Par PeteMitchell dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 13/05/2004, 15h22

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