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

Android Discussion :

Utiliser Matcher.find() sous Android 2.3 (Regex et groupes)


Sujet :

Android

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2011
    Messages : 9
    Points : 8
    Points
    8
    Par défaut Utiliser Matcher.find() sous Android 2.3 (Regex et groupes)
    Bonjour,

    Depuis un très récent test d'une de mes applis sur Androïd 2.3, je me suis rendu compte que la méthode Matcher.find() se comportait différemment sous Androïd 2.3 et sous les versions précédentes.
    Tout fonctionne normalement jusqu'à Androïd 2.2 :

    J'ai une méthode qui vérifie la validité d'une chaîne de caractères

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public boolean monTest(String sequence) {
    	mMonTest = pMonTest.matcher(sequence);
    	if (mMonTest.matches()) {
    		return true;
    	}
    	return false;
    }
    Que j'utilise pour extraire des données (si présentes)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (monTest(sequence) && mMonTest.find()) {
    	//le code placé ici n'est pas exécuté sur Androïd 2.3
    	//mais seulement sur les versions 2.2 et antérieures
    }
    Dans le test if et dans le cas d'une chaine valide, monTest(sequence) return true et mMonTest.find() return false sous 2.3 et true si <= 2.2

    Je ne vois pas vraiment ce que je peux modifier pour que cela fonctionne sous 2.3, si quelqu'un a déjà rencontré ce problème ou si quelqu'un en sait plus que moi, je suis preneur ^^

    Merci

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2011
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    Ok, j'ai trouvé.

    Pour la postérité :

    Depuis Androïd 2.3, le fait d'appeler Matcher.matches() annule le 1er résultat qu'aurait trouvé un Matcher.find()

    L'utilisation que j'en fait dans mon code n'a d'autres buts que la simplicité. Il est évident qu'à ce stade il est inutile d'appeler Matcher.matches() (Je réutilise ma fonction brute)

    Il me suffit donc de ne pas appeler Matcher.matches()

  3. #3
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    Si vous pensez que votre question est résolu, merci de bien tagger votre sujet avec le bouton que vous trouverez en bas de la page.

    Merci .
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

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

Discussions similaires

  1. [Tutoriel]: Utilisation du clavier sous Android
    Par Djug dans le forum Android
    Réponses: 0
    Dernier message: 30/05/2011, 11h16

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