java案例统计凌空抽射次数多不多?

wen java案例 1

用Java案例统计分析"凌空抽射"次数

下面我用一个完整的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 换行,更贴近真实解说

扩展方向

  1. 读取文件统计:把解说文本放到 .txt 文件,用 Files.readString(Path.of("match.txt")) 读取。
  2. 多关键词统计:用 Map<String, Integer> 批量统计"凌空抽射""头球""远射"等。
  3. 区分球员:用正则 (.{2,4})凌空抽射 提取是谁完成的射门。
  4. 不区分大小写(英文场景):Pattern.compile(keyword, Pattern.CASE_INSENSITIVE)
  • 用 Java 统计"凌空抽射"次数非常简单,核心就是正则匹配 + 计数
  • "多不多"取决于你设定的阈值,本例中以 3 次为界。
  • 该模式可复用到任何关键词统计场景,如体育解说、评论分析、日志统计等。

如果你有具体的比赛文本或想统计的关键词,可以发给我,我帮你改成对应的版本 👍

抱歉,评论功能暂时关闭!