用indexof解析短语然后得到单词的开头

时间:2014-11-29 10:50:41

标签: java string indexof

我有一个短语和一个关键字。我正在尝试找到关键字的第一个索引,但后来得到包含它的整个单词。我如何得到全文?问题是关键字可能是单词中的文本。

实施例

String keyword = "wor";

String phrase = "my keyword search phrase";

我想返回"keyword search phrase"

我尝试了phrase.indexOf(keyword);

但我自然得到"word search phrase"

3 个答案:

答案 0 :(得分:2)

您可以使用phrase.indexOf(keyword)并回溯到它之前的最后一个空格:

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

答案 1 :(得分:2)

试试这个:

String keyword = "wor";
String phrase = "my keyword search phrase";
int keywordsIndex = phrase.indexOf(keyword);
int spaceIndex = phrase.substring(0, keywordsIndex).lastIndexOf(' ');
System.out.println (phrase.substring(spaceIndex + 1));

答案 2 :(得分:1)

就个人而言,我更喜欢正则表达式,因为这样你就可以检查一个单词,即使它被一个空格以外的东西分开,就像制表符一样。

    String keyword = "wor";

    String phrase = "my keyword search phrase\twor";

    Pattern p = Pattern.compile("\\b" + keyword + "\\b");

    Matcher m = p.matcher(phrase);

    int i = 0;
    if ( m.find()) {
        i = m.start();
    }