2012-02-27 13 views
2

Eclipseプラグインを使用してプロジェクトを作成してIDEを作成しています。現在開いているエディタで特定の文字列の位置を取得する方法は?

私はテキストボックスで構成されたビューを持っています。テキストボックスにテキストを入力し、追加ボタンを押すと、エディタ内の特定の文字列がテキストに置き換えられます。 現在のエディタを見つけることができましたが、置換する文字列の位置を見つける方法を教えてください。

誰でもこの作業を手伝ってもらえますか?

答えて

3

これを自分で行うのではなく、String.replaceFirst()またはString.replaceAll()を使用して交換するのは簡単でしょうか?

現在のテキストをターゲットエディタから「取得」するだけで、置き換えを行い、結果のStringをターゲットエディタに戻すことができます。

私はEclipseに精通していませんが、ほとんどのテキストフィールドはのような抽象クラスを実装していて、便利なメソッドはgetText()setText()です。

+0

標準機能はありますか? – karthigayan

+0

こちらは**標準機能です! – ninesided

+0

上記の関数を呼び出すためにBufferedReaderとInputStreamのインスタンスを作成する必要がありますか? – karthigayan

1

How do I use the text document modelを参照してください。これは、Eclipseのテキストベースのエディタを扱う際に、検索を実装して置き換える方法について説明しています。

2

、エディタへの参照を持って、そしてそれがITextEditorある場合は

IDocumentProvider provider = editor.getDocumentProvider(); 
IDocument doc = provider.getDocument(editor.getEditorInput()); 
String content = doc.get(); 

を使用することができます今、あなたはコンテンツを持っていて、この文字列の中にいくつかのコードの位置を見つけることができる場合。

あなたはあなたが日食でエディタとビューで作業する場合、最初のエディタの概念を読んでください、そしてどのように

doc.replace(offset,length,newText); 

を呼び出すことができます置き換えるために、テキストや長さを置き換えるためにオフセットしている場合データが提供され、複数のエディタ間で共有されます。

Adreamus

/編集:ポール・ウェブスターの他の答えは非推奨機能「検索」を使用しています。私はそれをここに掲載しますが、コメントを投稿することはできませんよ。代わりにFindReplaceDocumentAdapterを使用することをお勧めします。メソッド 'find'はIRegionを返し、wchichにはこのアダプタに接続されたドキュメントのオフセットと長さが格納されます。

関連する問題