![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHLwhmbixGaykVM4JDWvplMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLzADNxMDNzAjMxMTNwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
自己写的答题思路,做个记录。反正是没过的,千万别当真,大概率是个反例。
/**
*
* @Title: searchKeywordInText
* @Description: 查询关键字索引
* @param: @param text
* @param: @param keywords
* @param: @return
* @return: Map<String,String>
* @throws
*/
public Map<String, String> searchKeywordInText(String text, List<String> keywords) throws KeyNotFoundException {
// 存放结果 <key,2_5_7>
Map<String, String> result = new HashMap<String, String>();
keywords.forEach(key -> {
// 筛选包含目标文本的
if (key.indexOf(text) > 0) {
// 对keywords按text作分割
String[] spArr = key.split(text);
// 同个key可能出现多个目标文本,对位置进行拼接
StringBuffer indexbuffer = new StringBuffer();
for (int i = 0; i < spArr.length; i++) {
indexbuffer.append(spArr[i].length());
if (i + 1 < spArr.length) {
// "2_5_7"
indexbuffer.append("_");
}
}
// keywords冲突的话....这里没解决
result.put(key, indexbuffer.toString());
}
});
if (result.isEmpty()) {
throw new KeyNotFoundException("目标文件无匹配!");
}
return result;
}
有大佬知道的话,麻烦指点一手,不胜感激!!!!