我有一个句子和一组单词,比如Mayweather,undefeated等。我想要做以下两件事:
1. 检查句子中是否包含上述任何单词...(只查找匹配的单词,忽略句号、逗号和换行符等)。 2. 如果句子中包含这些单词,则需要显示每个匹配单词前后的几个单词,可以使用String.format()实现。
以下是我的代码,它似乎可以工作,但不完全符合我的要求:
现在的输出是:
提前感谢!
1. 检查句子中是否包含上述任何单词...(只查找匹配的单词,忽略句号、逗号和换行符等)。 2. 如果句子中包含这些单词,则需要显示每个匹配单词前后的几个单词,可以使用String.format()实现。
以下是我的代码,它似乎可以工作,但不完全符合我的要求:
String sentence = "Floyd Mayweather Jr is an American professional boxer " +
"currently undefeated as a professional and is a five-division world champion, " +
"having won ten world titles and the lineal championship in four different weight classes.";
String newText = "";
Pattern p = Pattern.compile("(Mayweather) .* (undefeated)");
Matcher m = p.matcher(sentence);
if (m.find()) {
String group1 = m.group(1);
String group2 = m.group(2);
newText = String.format("%s ... %s" , group1, group2);
System.out.println(newText);
}
现在的输出是:
我想要的是这样的:Mayweather ... 不败
您能告诉我如何做到这一点,或指导我正确的方向吗?因为我卡住了。Floyd Mayweather Jr是一位美国人,目前作为职业拳击手仍然不败...
提前感谢!
contains()
来检查,使用replaceAll()
来替换呢? - TheLostMind