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 :

Problème méthode replaceAll


Sujet :

avec Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 42
    Points : 27
    Points
    27
    Par défaut Problème méthode replaceAll
    Bonjour,

    J'ai un fichier source message et je souhaite remplacer tout les mots IEP du fichier source par une chaîne de caractère. Mais lors de l'enregistrement du nouveau fichier rien n'est remplacé je ne sais pas quoi faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    // lecture du message modèle 
     
    String message = FileUtils.readFileToString(new File("C:\\Users\\Ju\\Desktop\\Modeles\\acte_ccam_modele.xml")); 
     
    // modification du message modèle 
     
     
    message.replaceAll("%iep%","voityure"); 
     
     
    // écriture du fichier message 
     
    FileUtils.writeStringToFile(new File("C:\\Dev\\docs\\messages_emis\\000001.ihe"), message);
    Merci d'avance

  2. #2
    Membre actif Avatar de fastdeath124
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Août 2011
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur sécurité

    Informations forums :
    Inscription : Août 2011
    Messages : 117
    Points : 200
    Points
    200
    Par défaut
    Bonjour,

    La méthode "replaceAll" ne modifie pas l'objet qui l'invoque, elle retourne plutôt un nouvel objet de type String.
    Donc en faisant l'appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    message.replaceAll("%iep%","voityure");
    un objet de type String est retourné mais il n'est pas récupéré. Ce qu'il faut faire est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String alteredMessage = message.replaceAll("%iep%","voityure");
    Puis lors de l'écriture il faut utiliser "alteredMessage" et non pas "message".

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 42
    Points : 27
    Points
    27
    Par défaut
    merci déjà pour votre aide

    j'ai modifier mon code comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     try {
     
                	// lecture du message modèle
     
                	String message = FileUtils.readFileToString(new File("C:\\Users\\Ju\\Desktop\\Modeles\\acte_ccam_modele.xml"));
     
                	// modification du message modèle
     
     
                	String alteredMessage = message.replaceAll("iep","voityure");
     
     
                	// écriture du fichier message
     
                	FileUtils.writeStringToFile(new File("C:\\Dev\\docs\\messages_emis\\000001.xml"), alteredMessage);
    mais le message reste le meme que celui de départ :s

    pour info le fichier que je dois modifier et comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      <emetteur>
              <valeur>IEP</valeur>
            </emetteur>
            <recepteur>
              <valeur>IEP</valeur>
            </recepteur>

  4. #4
    Membre actif Avatar de fastdeath124
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Août 2011
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur sécurité

    Informations forums :
    Inscription : Août 2011
    Messages : 117
    Points : 200
    Points
    200
    Par défaut
    C'est la méthode replace qu'il faut utiliser à la place de replaceAll (celle-ci fonctionne pour des expressions régulières).
    Et juste pour améliorer ton code, je te propose d'ajouter des try/catch car il est possible d'avoir des exceptions.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Octobre 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 42
    Points : 27
    Points
    27
    Par défaut
    Merci cela marche !
    J'ai maintenant un deuxieme soucis plus embêtent ^^
    je veux remplacer : String alteredMessage = message.replaceAll("IEP", acte.getIEP());

    mais mon getIEP renvois un objet de type IEP et non string.
    Y a t'il une solution comme créer un variable qui puisse etre de type string contenant la valeur de IEP ?

  6. #6
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 710
    Points : 4 791
    Points
    4 791
    Par défaut
    Il faut modifier la classe de l'objet "acte".
    Le mieux est de redéfinir la méthode toString() de cette classe.
    Si elle n'existe pas il faut la créer.

    Dans cette méthode, il faut retourner la valeur souhaitée.
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

Discussions similaires

  1. problème avec ReplaceAll()
    Par Kuroro dans le forum Langage
    Réponses: 3
    Dernier message: 22/05/2007, 10h08
  2. VBA-E Problème méthode .find
    Par popo68 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/01/2007, 10h14
  3. [EJB2.1 Entity] Problème méthode findAll() avec Jonas 4.7.4
    Par mixouille dans le forum Java EE
    Réponses: 1
    Dernier message: 28/07/2006, 12h06
  4. Problème méthode NUM
    Par Pfeffer dans le forum 4D
    Réponses: 2
    Dernier message: 10/07/2006, 09h17

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