Java 统计字符串中包含几个指定的字符串

在软件开发中,处理字符串是一个常见的任务。在本教程中,我们将学习如何用Java来统计字符串中包含多少个指定的子字符串。我们将逐步拆解这个问题。

流程概述

首先,让我们看看解决问题的基本步骤。下面是一个简单的流程表:

步骤 说明
1 读取输入的字符串和子字符串
2 初始化计数器
3 遍历字符串查找子字符串
4 更新计数器
5 输出结果

各步骤详细说明

步骤 1:读取输入

首先,我们需要获取用户提供的字符串和需要统计的子字符串。

import java.util.Scanner; // 导入 Scanner 类以便进行输入

public class StringCounter {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in); // 创建 Scanner 对象
        
        // 读取输入的字符串
        System.out.print("请输入字符串:");
        String mainString = scanner.nextLine();
        
        // 读取要统计的子字符串
        System.out.print("请输入要统计的子字符串:");
        String substring = scanner.nextLine();

步骤 2:初始化计数器

我们需要一个变量来存储找到的子字符串的数量,通常从 0 开始。

        int count = 0; // 初始化计数器

步骤 3:遍历字符串查找子字符串

接下来,我们使用循环来遍历主字符串,查找每个子字符串的出现次数。我们可以使用 indexOf 方法。

        int index = 0; // 初始索引
        
        while ((index = mainString.indexOf(substring, index)) != -1) { 
            count++; // 如果找到了子字符串,计数器加一
            index += substring.length(); // 更新索引,跳到下一个查找位置
        }

步骤 4:更新计数器

上一步已经完成了计数,因此我们在这里不需要额外的代码。

步骤 5:输出结果

最后,我们将结果输出到控制台。

        // 输出结果
        System.out.println("子字符串 \"" + substring + "\" 在字符串中出现了 " + count + " 次。");

        scanner.close(); // 关闭 Scanner 对象以释放资源
    }
}

完整代码

将所有步骤组合在一起,我们的完整代码如下:

import java.util.Scanner;

public class StringCounter {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("请输入字符串:");
        String mainString = scanner.nextLine();

        System.out.print("请输入要统计的子字符串:");
        String substring = scanner.nextLine();

        int count = 0;
        int index = 0;

        while ((index = mainString.indexOf(substring, index)) != -1) {
            count++;
            index += substring.length();
        }

        System.out.println("子字符串 \"" + substring + "\" 在字符串中出现了 " + count + " 次。");

        scanner.close();
    }
}

序列图

以下是整个过程的序列图,描述了代码执行的顺序:

sequenceDiagram
    participant User
    participant StringCounter
    User->>StringCounter: 输入字符串和子字符串
    StringCounter->>StringCounter: 初始化计数器
    StringCounter->>StringCounter: 查找子字符串
    StringCounter->>User: 输出结果

旅行图

接下来,我们用旅行图展示程序的主要流程:

journey
    title Java统计字符串包含指定字符串
    section 输入
      用户输入字符串: 5: User
      用户输入子字符串: 5: User
    section 处理
      初始化计数器: 5: StringCounter
      查找子字符串: 5: StringCounter
    section 输出
      输出结果: 5: StringCounter

结论

在本教程中,我们详细讲解了如何在Java中统计一个字符串中包含多少个指定的子字符串。通过这几个简单的步骤和代码实现,你可以高效地处理字符串查找问题。希望这篇文章对你有帮助,祝你在编程学习的道路上越走越远!