假设我有一个字符串:
String advise = "eat healthy food";
在字符串中我只知道关键字“健康”。我不知道这个词之前有什么,也不知道之后的是什么。我只知道中间词。那么我怎样才能得到“健康”之前的“吃”(“吃”)和之后(“食物”)关键词?
注意:这里中间单词的大小总是特定的,但另外两个单词的大小总是不同的。这里仅以“吃”和“食物”为例。这两个词可能随时都有。
我需要将这两个单词分成两个不同的字符串,而不是在同一个字符串中。
答案 0 :(得分:0)
答案 1 :(得分:0)
这是一个更通用的解决方案,可以处理更复杂的字符串。
public static void main (String[] args)
{
String keyword = "healthy";
String advise = "I want to eat healthy food today";
Pattern p = Pattern.compile("([\\s]?+[\\w]+[\\s]+)" + keyword + "([\\s]+[\\w]+[\\s]?+)");
Matcher m = p.matcher(advise);
if (m.find())
{
String before = m.group(1).trim();
String after = m.group(2).trim();
System.out.println(before);
System.out.println(after);
}
else
{
System.out.println("The keyword was not found.");
}
}
输出:
吃
食品
答案 2 :(得分:0)
我认为您可以使用拆分并根据需要单独获取所有单词。
String advise = "eat healthy food";
String[] words = advise.split("healthy");
List<String> word = Arrays.asList(words);
word.forEach(w-> System.out.println(w.trim()));