获取字符串中的下两个单词

时间:2014-11-29 12:01:28

标签: java

我正在构建一个自动填充建议器,我试图解析我的建议。

我有以下代码,可让我搜索关键字wor并返回整个单词keyword以及短语的其余部分。我想补充一点,这样我只能在原始单词keyword之后最多返回两个单词。

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 works

返回wor

但是现在我需要添加它,以便当它们存在于短语中时,我最多可以添加2个附加单词。示例keyword search phrase

我以为我可以做这样的事,但它不起作用

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

    System.out.println(result);

}

有人可以帮我解决这个问题。感谢

1 个答案:

答案 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(" $", ""));