如何实现Java字符串中包含几个特定字符串的计数

在Java开发中,处理字符串是一项非常基础但重要的技能。有时候,我们需要检查一个字符串中包含多少次某个特定的子字符串。本文将逐步教你如何实现这个功能,涵盖从定义问题到最终实现代码的全过程,并通过一些示例帮助你理解。

整体流程

我们可以把整个流程分为以下几步:

步骤 描述
1 获取用户输入(主字符串和子字符串)
2 使用循环或内置方法统计子字符串出现的次数
3 显示结果

下面,我们将详细描述每一步所需的代码和逻辑。

步骤细节

第一步:获取用户输入

我们需要从用户那里获取两个字符串:一个是大型字符串(主字符串),另一个是我们要查找的子字符串。

import java.util.Scanner;  // 引入Scanner类以获取用户输入

public class SubstringCounter {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);  // 创建Scanner对象
       
        System.out.println("请输入主字符串:");
        String mainString = scanner.nextLine();  // 读取主字符串

        System.out.println("请输入要查找的子字符串:");
        String subString = scanner.nextLine();  // 读取子字符串
        
        // 后面将添加调用计数函数的代码
    }
}

注释说明: 我们创建了一个 Scanner 对象,它允许我们从控制台获取用户输入。nextLine() 方法用于读取整行文本。

第二步:统计子字符串出现次数

在获取了输入后,我们可以开始统计子字符串出现的次数。有多种方法可以实现,但在这篇文章中,我们将使用一个简单的循环和 String.indexOf() 方法。

public static int countSubStringOccurrences(String mainString, String subString) {
    int count = 0;  // 初始化计数器
    int index = 0;  // 初始化起始索引

    while ((index = mainString.indexOf(subString, index)) != -1) { 
        count++;  // 统计找到的次数
        index += subString.length();  // 更新索引
    }

    return count;  // 返回统计结果
}

注释说明:

  • String.indexOf() 方法用于查找子字符串在主字符串中首次出现的位置,如果没有找到它将返回 -1
  • 每次找到子字符串后,我们增加计数器,并更新查找起始位置,以避免重复统计。

第三步:显示结果

最后,我们需要把结果显示给用户。将上面的代码整合到主函数中。

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    
    System.out.println("请输入主字符串:");
    String mainString = scanner.nextLine();
    
    System.out.println("请输入要查找的子字符串:");
    String subString = scanner.nextLine();
    
    int occurrences = countSubStringOccurrences(mainString, subString);  // 调用计数函数

    System.out.println("子字符串 '" + subString + "' 在主字符串中出现了 " + occurrences + " 次.");
}

注释说明: 这里我们调用了 countSubStringOccurrences 方法来获取子字符串的出现次数,并将结果输出到控制台。

旅行图

在我们的过程中,我们经历了以下步骤:

journey
    title 从输入到输出的步骤
    section 输入处理 
      用户输入主字符串: 5: 用户
      用户输入子字符串: 5: 用户
    section 计算次数 
      统计子字符串出现次数: 5: 系统
    section 显示结果 
      输出结果到控制台: 5: 系统

甘特图

以下是我们任务的甘特图表示:

gantt
    title 项目时间线
    dateFormat  YYYY-MM-DD
    section 用户输入
    获取主字符串         :a1, 2023-10-01, 1d
    获取子字符串        :after a1  , 1d
    section 统计过程
    计算次数            :a2, 2023-10-03, 2d
    section 输出结果
    显示结果            :a3, 2023-10-05, 1d

结尾

通过执行上述步骤和代码,你将能够有效地计算出在Java字符串中某个子字符串出现的次数。希望这篇文章能够帮助你更好地理解如何处理字符串和使用相关的方法。随着时间的推移,你会发现字符串处理在开发当中是多么的实用且有趣。如果你还有其他问题,欢迎随时询问!