2012-02-27 2 views
2

Eclipse 플러그인을 사용하여 프로젝트를 만들고 IDE를 작성했습니다.현재 열려있는 편집기에서 특정 문자열의 위치를 ​​가져 오는 방법은 무엇입니까?

텍스트 상자로 구성된보기가 있습니다. 텍스트 상자에 텍스트를 입력하고 추가 단추를 누르면 텍스트가 편집기의 특정 문자열을 대체해야합니다. 현재 편집기를 찾을 수 있지만 교체 할 문자열의 위치를 ​​찾는 방법을 알려드립니다.

누구든지 나를 도와 줄 수 있습니까?

답변

3

이 작업을 직접 수행하지 말고 String.replaceFirst() 또는 String.replaceAll() 대체품을 사용하는 것이 더 쉽지 않습니까?

대상 편집기에서 현재 텍스트 String을 "가져 오는 것"이 ​​필요하다면 바꾸기를 수행 한 다음 대상 편집기로 다시 String을 "설정"하십시오.

저는 Eclipse에 익숙하지 않지만 대부분의 텍스트 필드는 JTextComponent과 같은 추상 클래스를 구현하며 편리한 방법은 getText()setText()입니다.

+0

표준 기능이 있습니까? – karthigayan

+0

**이 표준 기능입니다 **! – ninesided

+0

위의 함수를 호출하기 위해 BufferedReader 및 InputStream의 인스턴스를 만들어야합니까? – karthigayan

1

How do I use the text document model을 참조하십시오. Eclipse 텍스트 기반 편집기를 사용할 때 검색을 구현하고 바꿀 수있는 방법을 설명합니다. 에디터에 대한 참조를 가지고 있고, 그것이 ITextEditor 인 경우

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

는 이제 콘텐츠를 당신이이 캐릭터 라인 내에서 일부 코드의 위치를 ​​찾을 수 있습니다 사용할 수있는 경우

2

. 당신은 텍스트와 대체 할 수있는 길이를 대체하는 오프셋 경우 어떻게 일식의 편집자 및 뷰, 에디터의 첫 번째 개념을 읽어 보시기 바랍니다 작동하고있는 경우

당신은

doc.replace(offset,length,newText); 

를 호출 할 수 있습니다 데이터가 제공되고 여러 편집기간에 공유됩니다.

Adreamus

/편집 : 폴 웹스터에서 다른 대답은 더 이상 사용되지 않는 기능 "검색"을 사용 : 내가 여기에 게시됩니다 불구하고, 댓글을 게시 할 수 없습니다입니다. 대신 FindReplaceDocumentAdapter을 사용하는 것이 좋습니다. 'find'메서드는 IRegion을 반환하고, wchich는이 어댑터에 연결된 문서의 오프셋과 길이를 포함합니다.

관련 문제