我有一个短语和一个关键字。我正在尝试找到关键字的第一个索引,但后来得到包含它的整个单词。我如何得到全文?问题是关键字可能是单词中的文本。
实施例
String keyword = "wor";
String phrase = "my keyword search phrase";
我想返回"keyword search phrase"
我尝试了phrase.indexOf(keyword);
但我自然得到"word search phrase"
答案 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();
}