Java String查找字符串出现的次数

概述

在Java程序开发中,经常需要查找一个字符串在另一个字符串中出现的次数。本文将指导你如何实现这一功能。

步骤概览

为了更好地理解整个过程,我们可以使用以下表格展示实现步骤:

步骤 描述
1. 提示用户输入源字符串和目标字符串
2. 使用indexOf()方法查找目标字符串在源字符串中的位置
3. 如果找到了目标字符串,计数器加1,并将源字符串截取为目标字符串之后的部分
4. 重复步骤2和步骤3直到在源字符串中找不到目标字符串
5. 输出目标字符串在源字符串中出现的次数

详细步骤

1. 提示用户输入源字符串和目标字符串

首先,我们需要使用Java的Scanner类来获取用户输入的源字符串和目标字符串。

import java.util.Scanner;

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

        System.out.println("请输入源字符串:");
        String sourceString = scanner.nextLine();

        System.out.println("请输入目标字符串:");
        String targetString = scanner.nextLine();

        scanner.close();

        // 调用查找字符串出现次数的方法
        int frequency = getFrequency(sourceString, targetString);

        System.out.println("目标字符串在源字符串中出现的次数:" + frequency);
    }

    // 后续步骤将在这里实现
}

2. 使用indexOf()方法查找目标字符串在源字符串中的位置

在上述代码中,我们获取了用户输入的源字符串和目标字符串,并关闭了Scanner对象。接下来,我们将实现一个方法来查找目标字符串在源字符串中的位置。

public static int getFrequency(String source, String target) {
    int frequency = 0;
    int position = source.indexOf(target);

    // 后续步骤将在这里实现

    return frequency;
}

3. 如果找到了目标字符串,计数器加1,并将源字符串截取为目标字符串之后的部分

在上述代码中,我们使用indexOf()方法查找目标字符串在源字符串中的位置。如果找到了目标字符串,indexOf()方法将返回目标字符串第一次出现的位置,否则返回-1。

public static int getFrequency(String source, String target) {
    int frequency = 0;
    int position = source.indexOf(target);

    while (position != -1) {
        frequency++;
        source = source.substring(position + target.length());
        position = source.indexOf(target);
    }

    return frequency;
}

4. 重复步骤2和步骤3直到在源字符串中找不到目标字符串

在上述代码中,我们使用一个循环来重复执行步骤2和步骤3,直到在源字符串中找不到目标字符串为止。每次找到目标字符串后,我们将计数器加1,并将源字符串截取为目标字符串之后的部分。然后,我们通过再次调用indexOf()方法来查找下一个目标字符串的位置。

5. 输出目标字符串在源字符串中出现的次数

最后,我们在主方法中输出目标字符串在源字符串中出现的次数。

public class StringFrequencyFinder {
    public static void main(String[] args) {
        // ...

        int frequency = getFrequency(sourceString, targetString);

        System.out.println("目标字符串在源字符串中出现的次数:" + frequency);
    }

    public static int getFrequency(String source, String target) {
        // ...

        return frequency;
    }
}

完整代码

以下是完整的Java代码,可直接复制并运行:

import java.util.Scanner;

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

        System.out.println("请输入源字符串:");
        String sourceString = scanner.nextLine();

        System.out.println("请输入目标字符串:");
        String targetString = scanner.nextLine();

        scanner.close();

        int frequency = getFrequency(sourceString, targetString);

        System.out.println("目标字符串在源字符串中出现的次数:" + frequency);
    }

    public static int getFrequency(String