2016-10-26 2 views
0

J'essaie de remplacer un mot par une occurrence à la fois. J'ai regardé d'autres réponses ici, mais je pense que ce que j'ai codé jusqu'ici serait beaucoup plus simple. Je veux remplacer un mot que l'utilisateur sélectionne avec un autre mot que l'utilisateur sélectionne également. Je vais avoir deux champs de texte et un bouton et chaque fois que l'utilisateur clique sur le bouton, nous allons récupérer le texte des deux champs de texte et remplacer le mot qui doit être remplacé dans la zone de texte. Mon problème est que lorsque le bouton de remplacement est cliqué, tout autre texte qui est dans la zone de texte est supprimé et nous sommes seulement avec le mot qui fait le remplacement. Je sais que mon problème est parce que je place le texte de la zone de texte juste à ce mot, mais je ne sais pas comment le réparer. Voici mon code: Toute aide est appréciée.Remplacer un mot par un autre mot sélectionné par un utilisateur

replaceButton.addActionListener(new ActionListener() 
    { 
     public void actionPerformed(ActionEvent e) 
     { 
      String findText = textField.getText(); 
      String replaceText = textField2.getText(); 
      String text = textArea.getText(); 

      text += text.replaceFirst(findText, replaceText); 
      textArea.setText(replaceText); 

     } 
    }); 

Répondre

0

Comme vous l'avez dit. Vous définissez le texte au textArea sur le texte que vous souhaitez remplacer. Placez le texte textArea dans le texte mis à jour renvoyé par text.replaceFirst(findText, replaceText). De plus, vous n'avez pas besoin de concaténer le résultat.

Essayez ceci.

replaceButton.addActionListener(new ActionListener() 
{ 
    public void actionPerformed(ActionEvent e) 
    { 
     //the text you want to replace 
     String findText = textField.getText(); 
     //what you want to replace it with 
     String replaceText = textField2.getText(); 
     //all the text in the text area 
     String text = textArea.getText(); 

     //replace first occurrence of "findText" with "replaceText" 
     //returns the altered string 
     text = text.replaceFirst(findText, replaceText); 
     //set text in textArea to newly updated text 
     textArea.setText(text); 

    } 
}); 

Pour être sûr de bien vous comprendre, vous voulez quelque chose comme ça.

Texte original: J'aime les chats, les chats sont cool.

trouver: chats; remplacer: chiens.

Première sortie de clic: J'aime les chiens, les chats sont cool.

Deuxième sortie de clic: J'aime les chiens, les chiens sont cool.

+0

C'est exact. Cette solution a fonctionné. J'étais juste dans cet état d'esprit que j'ai besoin de définir le texte dans la zone de texte à ce champ remplacéText. Merci beaucoup! – Jay