You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多行文本子串出现次数统计:如何将多行结果合并为总次数?

修改方案

不需要新增循环,只需要在现有循环基础上增加一个总次数累加变量,把每行的统计结果汇总后再输出即可,具体修改步骤如下:

  1. 在main方法中初始化一个总计数器变量,用于累加所有行的子串出现次数
  2. 遍历每行文本时,不再直接打印单行的统计值,而是将其加到总计数器中
  3. 所有行处理完成后,打印总计数器的值

修改后的完整代码:

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class OccurrencesAmount {
    public static int getOccurrencesAmount(String substring, String string) {
        substring = substring.toUpperCase();
        string = string.toUpperCase();

        int count = 0;
        int fromIndex = 0;
        int length = substring.length();

        while (true) {
            int occurrenceIndex = string.indexOf(substring, fromIndex);

            if (occurrenceIndex < 0) {
                break;
            }

            count++;
            fromIndex = occurrenceIndex + length;
        }

        return count;
    }

    public static void main(String[] args) throws FileNotFoundException {
        try (Scanner scanner = new Scanner(new FileInputStream("input.txt"))) {
            String searchLine = "о";
            // 新增总计数器
            int totalCount = 0;

            while (scanner.hasNextLine()) {
                // 将单行统计值累加到总计数器
                totalCount += getOccurrencesAmount(searchLine, scanner.nextLine());
            }
            // 循环结束后打印总次数
            System.out.println(totalCount);
        }
    }
}

关键修改说明

  • 新增int totalCount = 0;:用于存储所有行的子串出现总次数
  • 把原代码中直接打印单行结果的逻辑,改为totalCount += ...进行累加
  • 移到循环外部打印总结果,确保只输出一次最终统计值

内容的提问来源于stack exchange,提问作者Digger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 04:20:16