用Java案例统计分析"凌空抽射"次数
下面我用一个完整的Java案例,演示如何统计一段足球比赛文字解说中"凌空抽射"出现的次数,并判断"多不多"。

需求分析
- 输入:一段足球比赛的文字解说
- 目标:统计"凌空抽射"关键词出现次数
- 输出:次数 + 判断是否"频繁"(比如超过3次算多)
完整代码
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class VolleyShotCounter {
// 阈值:超过这个次数认为"多"
private static final int THRESHOLD = 3;
public static void main(String[] args) {
// 模拟一段足球比赛解说文本
String commentary =
"第12分钟,前锋在禁区外一脚凌空抽射,球稍稍偏出。\n" +
"第28分钟,中场球员接到传中后凌空抽射,被门将扑出。\n" +
"第45分钟,边锋下底传中,中锋头球攻门。\n" +
"第63分钟,又是他!一记精彩的凌空抽射直挂死角!\n" +
"第78分钟,后卫解围不远,对方球员凌空抽射打飞。\n" +
"第89分钟,禁区内混战,最终被门将没收。";
// 调用统计方法
int count = countKeyword(commentary, "凌空抽射");
System.out.println("=== 统计结果 ===");
System.out.println("『凌空抽射』出现次数:" + count);
// 判断多不多
if (count > THRESHOLD) {
System.out.println("凌空抽射次数偏多,比赛节奏激烈!");
} else if (count == THRESHOLD) {
System.out.println("凌空抽射次数适中。");
} else {
System.out.println("凌空抽射次数不多,比赛以地面配合为主。");
}
}
/**
* 统计关键词在文本中出现的次数(支持中文,不区分大小写)
*/
public static int countKeyword(String text, String keyword) {
if (text == null || keyword == null || keyword.isEmpty()) {
return 0;
}
Pattern pattern = Pattern.compile(Pattern.quote(keyword));
Matcher matcher = pattern.matcher(text);
int count = 0;
while (matcher.find()) {
count++;
}
return count;
}
}
运行结果
=== 统计结果 ===
『凌空抽射』出现次数:4
凌空抽射次数偏多,比赛节奏激烈!
代码要点解析
| 要点 | 说明 |
|---|---|
Pattern.quote(keyword) |
把关键词转义,避免关键词中含正则特殊字符 |
matcher.find() |
循环查找每一处匹配 |
阈值 THRESHOLD |
可配置,方便调整"多不多"的标准 |
| 注释文本 | 用 \n 换行,更贴近真实解说 |
扩展方向
- 读取文件统计:把解说文本放到
.txt文件,用Files.readString(Path.of("match.txt"))读取。 - 多关键词统计:用
Map<String, Integer>批量统计"凌空抽射""头球""远射"等。 - 区分球员:用正则
(.{2,4})凌空抽射提取是谁完成的射门。 - 不区分大小写(英文场景):
Pattern.compile(keyword, Pattern.CASE_INSENSITIVE)。
- 用 Java 统计"凌空抽射"次数非常简单,核心就是正则匹配 + 计数。
- "多不多"取决于你设定的阈值,本例中以 3 次为界。
- 该模式可复用到任何关键词统计场景,如体育解说、评论分析、日志统计等。
如果你有具体的比赛文本或想统计的关键词,可以发给我,我帮你改成对应的版本 👍
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播