2014-11-29 2 views
0

자동 완성기를 만들고 있는데 내 제안을 분석하려고합니다.문자열의 다음 두 단어 얻기

키워드 wor을 검색하고 전체 단어 keyword과 나머지 문구를 반환하는 다음 코드를 작성했습니다. 이 단어를 추가하여 원래 단어 keyword 다음에 최대 두 개의 단어 만 추가 할 수 있습니다. wor

에서 keyword search phrase works를 반환하지만이 구절에서있을 때 나는 2 개 개의 추가 단어의 maxinum까지 추가 할 수 있도록 지금은 여기에 추가해야 할 완벽하게 작동

Example code 

String keyword = "wor"; 
String phrase = "my keyword search phrase works"; 
int keywordIndex = phrase.indexOf(keyword); 
int lastSpaceIndex = phrase.substring(0, keywordIndex).lastIndexOf(' '); 
phrase = phrase.substring(lastSpaceIndex + 1); 

.

keyword search phrase는 내가 같은 것을 할 수 있다고 생각하지만, 누군가가이 문제를 파악하는 데 도움이 수

if(phrase.contains(" ")) {      
    int nextWordIndex = phrase.indexOf(" "); 
    String result = phrase.substring(keywordsIndex, nextWordIndex); 

    System.out.println(result); 

} 

작동하지 않습니다. 당신은 당신이 두 개 이상의 공간이 있는지 확인하면 감사

+0

당신은 할 수 문자열을 단어 모음으로 분리합니다. 취급하기 쉬울 것입니다. –

답변

1

는 다음이 도움이 될 것이다 : 당신은 당신이 단어 사이에 공백이 있는지 확인하면

phrase = phrase.substring(lastSpaceIndex + 1); 
int firstIndex = phrase.indexOf(' ', 0); 
int secondIndex = phrase.indexOf(' ', firstIndex + 1); 
int thirdIndex = phrase.indexOf(' ', secondIndex + 1); 
phrase = phrase.substring(0, phrase.indexOf(' ', thirdIndex)); 
System.out.println(phrase); 

후 다음 작업을 수행 할 수 있습니다 :

String str[] = phrase.split(" "); 
StringBuilder stringBuilder = new StringBuilder(); 
for (int i =0; i< Math.min(str.length, 3); i++) { 
    stringBuilder.append(str[i] + " "); 
} 

System.out.println(stringBuilder.toString().replaceAll(" $", ""));