【算法】单词出现次数和位置统计

【算法】单词出现次数和位置统计

题目描述

编写一个程序,用于统计一个给定单词在一段文本中出现的次数以及第一次出现的位置。如果单词在文本中出现,则输出出现次数和第一次出现的位置(位置从0开始计算)。如果单词没有出现,则输出-1。

请添加图片描述

思路分析

  1. 使用Scanner类从控制台读取两个字符串:要搜索的文本str和要统计的单词substring
  2. 定义一个方法countStr,该方法接收两个字符串参数,返回单词在文本中出现的次数。
  3. countStr方法中,使用indexOf方法循环查找单词在文本中的位置。
  4. 每次找到单词后,增加计数器count的值,并将索引index增加1,以便查找下一个可能的位置。
  5. 如果indexOf返回-1,表示单词不再文本中出现,循环结束。
  6. 在主方法中调用countStr方法,并打印结果。

输入示例

to
to be or not to be is a question

输出示例

2 0

代码实现

import java.util.Scanner;

public class countStr {
    public static void main(String[] args) {
        // 创建Scanner对象用于读取控制台输入
        Scanner sc = new Scanner(System.in);
        // 读取要搜索的文本
        String str = sc.next();
        // 读取要统计的单词
        String substring = sc.next();
        // 调用countStr方法并打印结果
        System.out.println(countStr(str, substring));
    }

    /**
     * 统计单词在文本中出现的次数和第一次出现的位置
     * @param str 要搜索的文本
     * @param substring 要统计的单词
     * @return 包含出现次数和第一次出现位置的字符串(格式:次数 位置),如果未出现则返回-1
     */
    public static String countStr(String str, String substring) {
        int count = 0;
        int index = 0;
        while ((index = str.indexOf(substring, index)) != -1) {
            count++;
            index += substring.length();
        }
        if (count > 0) {
            return count + " " + str.indexOf(substring) + "";
        } else {
            return "-1";
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值