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

avec Java Discussion :

Traitement de chaines de caractères


Sujet :

avec Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 109
    Points : 70
    Points
    70
    Par défaut Traitement de chaines de caractères
    Bonjour,

    J’ai un petit problème avec mes chaines de caractères.
    Par exemple si j'ai :

    tototo = 3*to

    et que je veux changer mon "to" (apres le '=') par "toto" sans changer mon "tototo".
    C'est à dire obtenir :

    tototo = 3*toto

    En gros je veux changer tous les "to" qui non pas de "_", pas de lettres ni de chiffres avant ou après.
    Comment puis-je faire svp? Il me semble qu'il faut utiliser les expressions régulière mais je ne m'en sors pas.
    Merci pour votre aide.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par roulian46 Voir le message
    Il me semble qu'il faut utiliser les expressions régulière mais je ne m'en sors pas.
    Parce que c'est une utilisation inhabituelle des expressions régulières. Tu cherches à reconnaître un truc à condition qu'il ne soit pas suivi ni précédé d'autres trucs.

    Ça veut dire que dans ta regex tu vas devoir exprimer des choses qui ne feront pas partie de ce qui est reconnu, mais qui doivent être avant et après (plus exactement qui ne doivent pas être avant ou après.)

    C'est ce que l'on appelle les lookahead et les lookbehind. Vu que le but est de ne pas avoir des choses, ce sera les negative lookahead et lookbehind.
    T'as plus qu'à trouver ça dans la JavaDoc de Pattern.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2008
    Messages
    1 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 190
    Points : 2 657
    Points
    2 657
    Par défaut
    Tu peux tout simplement t'en sortir sans expression régulière, en traitant/analysant tes chaines.

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par deathness Voir le message
    Tu peux tout simplement t'en sortir sans expression régulière, en traitant/analysant tes chaines.
    Euh, voui, mais même si on parle d'expression régulière un peu complexes, ça reste l'outil qui sert à faire exactement ça -_-°...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2008
    Messages
    1 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 190
    Points : 2 657
    Points
    2 657
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Euh, voui, mais même si on parle d'expression régulière un peu complexes, ça reste l'outil qui sert à faire exactement ça -_-°...
    Et bien je suis plutôt contre les er. ça devient vite ingérable, beaucoup de personnes ne savent pas les utiliser (et donc les maintenir ou les faire évoluer) et au final je constate que ça fait perdre beaucoup de temps dès qu'on les utilise.
    Alors qu'une méthode construite en if-else bien commenté n'a pas ces inconvénients et est de plus bien plus facilement traçable et débuggable.

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Alors là je te mets au défi de faire ça avec du if-else à peu près propre et facilement débuggable.

    Le problème se résout en 23 lignes pour deux méthodes et n'est pas franchement d'une grande évidence.

    À l'inverse, une regex de 29 caractères assez lisible, dont 18 sont factorisables pour une plus grande flexibilité, résout le problème en une à trois lignes.

    Je comprends le raisonnement, mais il m'a l'air bien absolu. À ce moment-là, un service informatique c'est trop compliqué à assurer, il vaut mieux tenir les choses sur papier, à la main -_-°.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. [RegEx] Traitement de chaines de caractères
    Par ctrl+z dans le forum Langage
    Réponses: 17
    Dernier message: 09/02/2009, 15h11
  2. Traitement de chaine de caractère
    Par kroax dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/06/2007, 15h09
  3. [VB6]Traitement de chaine de caractère + conversion
    Par kboo dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 24/04/2006, 09h23
  4. [XSL] Optimisation d'un traitement de chaines de caractères
    Par mathieu dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 05/02/2006, 18h57
  5. Traitement de chaine de caractères
    Par lapartdombre dans le forum Langage
    Réponses: 9
    Dernier message: 03/02/2006, 09h29

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