2017-11-20 4 views
0

私は関数を変更するのに役立つでしょう!Java - jeditorpane内のテキストから特定の文字を削除する

目的: 特定の文字の配列リストを作成します。 テキストJEditorpaneからarraylistで指定された文字を削除するメソッドを記述します。

So far: 文字のarraylistを作成しました。 文字を削除する関数を書きました。 jeditorpaneを含むguiを作成しました

問題: この関数は動作し、文字列を介してコンソールにprintlnした文字を削除します。

私はJEditorpaneで開いているテキスト文書から文字を削除するように苦労しています。要するに

コードは:

 private static ArrayList<Character> special = new ArrayList<Character>(Arrays.asList('a','b','h')); 



    public class removing implements ActionListener { 
    public void actionPerformed(ActionEvent e) { 

documentpaneコンソールに印刷されte​​st.chatAt、(に私が変更した場合、私のJEditorPane

、document.chatAt、の名前で、これは動作します。事前に任意の助け

 Document document = documentpane.getDocument(); 

     String test = "hello world?"; 
     String outputText = ""; 

     for (int i = 0; i < document.getLength(); i++) { 
      Character c = new Character(document.charAt(i)); 
      if (!special.contains(c)) 
       outputText += c; 
      else 
       outputText += " "; 
     } 
     System.out.println(outputText); 

おかげでこれはどう

+0

'Document'は' charAt'方法 – Lino

答えて

0

DocumentにはcharAtメソッドがありません。まず文書の内容を抽出する必要があります。これは、次によって行うことができます。

String content = document.getText(0, document.getLength()); 

そして、それが動作するはずcontentであなたのfor-loopを使用した場合。だからあなたのコードは次のようになります。

Document document = documentpane.getDocument(); 
String content = document.getText(0, document.getLength()); 
String outputText = ""; 
for (int i = 0; i < content.length(); i++) { 
    Character c = new Character(content.charAt(i)); 
    if (!special.contains(c)) 
     outputText += c; 
    else 
     outputText += " "; 
} 
System.out.println(outputText); 
+0

こんにちはリノを持っていない、返事のおかげで、 私はちょうど1つのエラーを持つ、あなたのソリューションを実装しています。 \t for(int i = 0; i Shane

+0

@Shaneどのようなエラーが表示されますか? – Lino

+0

申し訳ありませんがあなたが答えたときに賞賛を編集する必要がありました!上記を参照! ありがとう – Shane

-2

String outputText =document.getText(0,docuemnt.getLength()).replaceAll("[a|b|c]"," "); 
    //set regex that you want 
    System.out.println(outputText); 

document.getText(0、docuemnt.getLength())はリノの提案通りです。しかし、私はあなたがループとチェックをする必要がない正規表現を好むので、連結の代わりにStringBuilderを使用する方が良い方法です。

関連する問題