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 :

corriger les erreurs d'espace commises dans une phrase


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 207
    Par défaut corriger les erreurs d'espace commises dans une phrase
    Bonjour,

    Je suis en train de réfléchir à la manière de transformer une String mal tapée (avec des espaces mal placés, ou manquants) pour obtenir au final une String bien tapée.

    Si, par exemple, je tape: "Ce matin ,il faisait beau, mais cet après-midi, il risque de pleuvoir ."

    Je désire donc rajouter l'espace après la première virgule, supprimer l'espace avant la première virgule, supprimer un espace avant "après-midi" et supprimer l'espace avant le point final.

    Alors plusieurs idées me viennent, mais je ne vois pas encore vraiment comment faire.

    Taper une String comportant des erreurs.
    La transformer en char.
    Créer une ArrayList dans laquelle je stocke les char.
    Avec un Iterator, regarder:
    Si je trouve deux espaces d'affilés, en supprimer un.
    Si je trouve un espace avant une virgule, un point, un point virgule etc., le supprimer.
    Si je ne trouve pas d'espace après une virgule, un point, un point virgule etc., en rajouter un.
    Du coup, j'obtiens normalement une ArrayList de char avec les espaces bien placés.
    Et là, je recrée une String dans laquelle je recopie les char un par un.

    Est-ce que vous auriez une idée moins tordue? J'ai l'impression qu'il y a bien plus simple que ce que je désire faire, peut-être avec charAt.

    Merci d'avance,
    Johnny3

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 10
    Par défaut
    regarde les regular expression.

    java.util.regex.Pattern et classes apparentées.

    C'est fait pour se genre de chose, tu aurais quelquechose de plus souple, et probablement plus optimiser. Par contre il faut se farcir l'api un peu complexe des qu'on veut faire des choses compliquées.

    Maintenant si tu veux faire simple toujours dans les regexp il est possible qu'un bete String.replaceAll() puisse suffire.

  3. #3
    Membre Expert

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Par défaut
    Le procédé est le bon. Mais pour n'oublier aucun cas, une modélisation à l'aide d'un automate peut aider.

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    commence par une regexp qui remplace les espaces multiples par un espace simple, poursuit avec un regexp qui transforme les blanc+ponctuation par une ponctuation simple, et fini avec un regexp qui transforme les ponctuation + caractère en ponctuation + espace + caractère. Ca devrait être bon

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 207
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    commence par une regexp qui remplace les espaces multiples par un espace simple, poursuit avec un regexp qui transforme les blanc+ponctuation par une ponctuation simple, et fini avec un regexp qui transforme les ponctuation + caractère en ponctuation + espace + caractère. Ca devrait être bon
    Merci! Merci à tous. Je vais lire cette fameuse classe regexp et je vous dis si j'y arrive.

    Sinon, quelque chose avec StringTokenizer est-il envisageable?

    Johnny3

  6. #6
    Membre Expert

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    commence par une regexp qui remplace les espaces multiples par un espace simple, poursuit avec un regexp qui transforme les blanc+ponctuation par une ponctuation simple, et fini avec un regexp qui transforme les ponctuation + caractère en ponctuation + espace + caractère. Ca devrait être bon
    Ca me parraît bien couteux...

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    pas temps que çà, et c'est probablement plus lisible que de tapper tout dans une seule regexp

  8. #8
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Citation Envoyé par johnny3 Voir le message
    Taper une String comportant des erreurs.
    La transformer en char.
    Créer une ArrayList dans laquelle je stocke les char.
    Avec un Iterator, regarder:
    ...
    Un StringBuffer / StringBuilder pour construire ta chaîne bien tapée devrait suffire.

  9. #9
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Citation Envoyé par herve91 Voir le message
    Un StringBuffer / StringBuilder pour construire ta chaîne bien tapée devrait suffire.
    Oui, déjà dit.

  10. #10
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 207
    Par défaut
    Un peu découragé ce soir... les questions que je vous ai posées portent sur un projet et on vient de me donner une réponse très inquiétante: il semblerait que nous n'ayons pas le droit à l'API pour ce projet, même si on a eu un cours dessus et qu'on a récemment vu les Vecteurs et Hashmap.

    Du coup, tout ce que j'ai fait dans ce projet avec LinkedList tombe à l'eau... il faut que je recode tout de manière plus lourde, sans itérateur, avec élément, précédent, suivant... un peu découragé ce soir...

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 24/05/2011, 12h19
  2. Corriger les erreurs d'orthographe dans Texniccenter
    Par open_source dans le forum Débuter
    Réponses: 1
    Dernier message: 19/05/2009, 10h35
  3. Supprimer les espaces consécutifs dans une chaîne
    Par aymenet1 dans le forum Pascal
    Réponses: 12
    Dernier message: 27/11/2007, 22h21
  4. Réponses: 3
    Dernier message: 26/03/2007, 09h46

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