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

Collection et Stream Java Discussion :

Regex avec un tableau de string


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 77
    Par défaut Regex avec un tableau de string
    Bonjour,

    Je dois faire des tests sur une chaine de caractères et comme ça me ferait beaucoup de "if" imbriqué, je voudrais utiliser un regex et le matches de la classe String.

    Je n'y connais pas grand chose en regex, car la plupart du temps, je les trouve tous faits sur internet et là je me suis inspirée d'un problème similaire mais avec un tableau de caractère et à l'exécution, j'ai une erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    String[] firstPos = { "01","03","11","16","17","05","57"};
    String[] secondPos = {"59","64","70"};
    String[] lastPos = {"A1A","A1B","B1A"};
     
    System.out.println(machaine.substring(0,2).matches(".*[" + firstPos + "].*"));
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    (Main) Exception : Unclosed character class near index 32
    .*[[Ljava.lang.String;@1bf73fa].*
                                    ^
    Est-ce que quelqu'un pourrait m'indiquer comment je dois procéder pour un tableau de chaines?

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Par défaut
    Salut,

    Tu ne peux pas mettre un tableau de chaine comme ça dans une regex.

    Si tu fais ça, Java va automatiquement appeler le toString du tableau pour insérer une chaine .. d'ailleurs le résultat du toString est justement [Ljava.lang.String;@1bf73fa

    Voilà pour l'explication de ton erreur. Si tu veux rester sur ton idée de regex, peut-être plus court à écrire mais plus long à executer et aussi à maintenir, soit tu transforme ton tableau en une chaine valide pour la regex .. et là je ne vois pas comment faire un ou entre différentes String, je passe donc la main.

    Sinon tu utilises des List au lieu d'un tableau et tu remplaces ton matches par

    firstPos.contains(machaine.substring(0,2))

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 77
    Par défaut
    Merci pour l'explication sur l'erreur

    Je vais tester le contains de la List et je vois si ça résout mon problème

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 77
    Par défaut
    Ca a l'air de fonctionner comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    List<String> firstPosL = java.util.Arrays.asList("01","03","11","16","17","05","57");
    System.out.println(machaine.substring(0,2)+" : "+firstPosL.contains(machaine.substring(0,2)));
    Merci pour la bonne idée

    Par contre, si quelqu'un connait la solution avec le regex, je suis preneuse parce que je n'aime pas m'avouer vaincue...

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

Discussions similaires

  1. ParseExact avec un tableau de string en critère
    Par petitours dans le forum C#
    Réponses: 2
    Dernier message: 22/10/2013, 17h40
  2. Réponses: 4
    Dernier message: 16/11/2010, 07h13
  3. travailler avec des tableau de string
    Par amine008 dans le forum C#
    Réponses: 3
    Dernier message: 04/03/2010, 15h38
  4. action form avec proprieté tableau de String
    Par toure32 dans le forum Struts 1
    Réponses: 1
    Dernier message: 21/03/2008, 09h34
  5. [JComboBox] Remplissage avec tableau de String
    Par linkit dans le forum Composants
    Réponses: 2
    Dernier message: 26/05/2005, 21h39

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