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

news2024/12/30 3:00:52

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

题目描述

编写一个程序,用于统计一个给定单词在一段文本中出现的次数以及第一次出现的位置。如果单词在文本中出现,则输出出现次数和第一次出现的位置(位置从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";
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2105952.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

我完成第一个AI项目的全过程记录——对IMDB电影评论的情感分析

前言 这是我用时两天完成的第一个AI项目。 我的代码和运行结果放在kaggle上面,地址: Sentiment Analysis of IMDB Movie Reviews (90%) 我参考的原作者kaggle项目地址:Sentiment Analysis of IMDB Movie Reviews 我如何选择的这个…

InstantX团队新作!基于端到端训练的风格转换模型CSGO

由InstantX团队、南京理工大学、北京航空航天大学以及北京大学联合提出了一种基于端到端训练的风格转换模型 CSGO,它采用独立的特征注入明确地解耦内容和风格特征。统一的 CSGO 实现了图像驱动的风格转换、文本驱动的风格化合成和文本编辑驱动的风格化合成。大量实验…

Java的时间复杂度和空间复杂度和常见排序

目录 一丶时间复杂度 二丶空间复杂度 三丶Java常见排序 1. 冒泡排序(Bubble Sort) 2.插入排序(Insertion Sort) 3.希尔排序(Shell Sort) 4.选择排序(Selection Sort) 5.堆排序&am…

视频汇聚平台LntonAIServer视频质量诊断功能--偏色检测与噪声检测

随着视频监控技术的不断进步,视频质量成为了决定监控系统性能的关键因素之一。LntonAIServer新增的视频质量诊断功能,特别是偏色检测和噪声检测,进一步强化了视频监控系统的可靠性和实用性。下面我们将详细介绍这两项功能的技术细节、应用场景…

【Leetcode】1-5

1 两数之和 1. 两数之和 - 力扣&#xff08;LeetCode&#xff09; 和为目标值 target 就是在找 target - nums[i] 利用 哈希表 查找只需要 O(1) class Solution {public int[] twoSum(int[] nums, int target) {HashMap<Integer, Integer> hm new HashMap<>();…

科研绘图系列:R语言柱状图分布(histogram plot)

介绍 柱状图(Bar Chart)是一种常用的数据可视化图表,用于展示和比较不同类别或组的数据。它通过在二维平面上绘制一系列垂直或水平的柱子来表示数据的大小,每个柱子的长度或高度代表一个数据点的数值。柱状图非常适合于展示分类数据的分布和比较。柱状图的特点: 直观比较…

使用ChatGPT半小时撰写优质学术报告,详细使用指南

大家好,感谢关注。我是七哥,一个在高校里不务正业,折腾学术科研AI实操的学术人。关于使用ChatGPT等AI学术科研的相关问题可以和作者七哥(yida985)交流,多多交流,相互成就,共同进步,为大家带来最酷最有效的智能AI学术科研写作攻略。经过数月爆肝,终于完成学术AI使用教…

C++ | Leetcode C++题解之第386题字典序排数

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<int> lexicalOrder(int n) {vector<int> ret(n);int number 1;for (int i 0; i < n; i) {ret[i] number;if (number * 10 < n) {number * 10;} else {while (number % 10 9 || numbe…

打包部署之---》Xshell使用不了如何部署

前端打包发布有很多种&#xff0c;常用 xshell 连接服务器打包发布&#xff0c;但是小编发现最近小编电脑上的Xshell7出现了一个问题&#xff0c;一直报50003错误&#xff0c;说是不是最新版本&#xff1b;让你升级 可是点击确定以后确提示小编已经是最新版本; 这个时候小编选择…

【Java】面向对象基础(创建类,认识构造器,this关键字)

文章目录 前言一、创建类二、面向对象的基础&#xff08;认识构造器&#xff09;三、this关键字总结 前言 学习Java面向对象的基础。 一、创建类 1、在创建class文件的时候&#xff0c;文件夹名称跟第一个创建出来的类名是一样的。 二、面向对象的基础&#xff08;认识构造器…

数据结构---双向链表(内存泄露相关知识)

一、内存泄露 内存泄露&#xff08;Memory Leak&#xff09;是指程序中已动态分配的堆内存由于某种原因程序未释放或无法释放&#xff0c;造成系统内存的浪费&#xff0c;导致程序运行速度减慢甚至系统崩溃等严重后果。内存泄漏是程序设计中常见的错误之一&#xff0c;其特点包…

C语言学习笔记 Day16(C10文件管理--下)

Day16 内容梳理&#xff1a; C语言学习笔记 Day14&#xff08;文件管理--上&#xff09;-CSDN博客 C语言学习笔记 Day15&#xff08;文件管理--中&#xff09;-CSDN博客 目录 Chapter 10 文件操作 10.5 文件状态 10.6 文件的随机读写 fseek()、rewind() &#xff08;1&…

chapter13-常用类——(String类)——day15

目录 466-String结构剖析 467-String结构剖析 468-String测试题1 469-String测试题2 470-String对象特性1 471-String对象特性2 472-String常用方法1 473-String常用方法2 474-String常用方法3 466-String结构剖析 1、接口Serializabel&#xff0c;说明String对象可以串…

智汇云舟受邀参加2024第四届国产水科学数值模型开发创新与技术应用研讨会,并成为“科技智水产业联盟”创始成员

在数字化浪潮的推动下&#xff0c;智慧水利作为国家战略的重要组成部分&#xff0c;正迎来前所未有的发展机遇。8月27-29日&#xff0c;由浙江贵仁信息科技股份有限公司主办、浙江省水利学会协办的“2024第四届国产水科学数值模型开发创新与技术应用研讨会”在杭州白马湖建国饭…

【深度学习】向量化

1. 什么是向量化 向量化通常是消除代码中显示for循环语句的技巧&#xff0c;在深度学习实际应用中&#xff0c;可能会遇到大量的训练数据&#xff0c;因为深度学习算法往往在这种情况下表现更好&#xff0c;所以代码的运行速度非常重要&#xff0c;否则如果它运行在一个大的数据…

英伟达AI超级计算机SuperPod:H100→GH200→GB200

英伟达的 DGX SuperPOD 是一台完整的数据中心级 AI 超级计算机&#xff0c;采用模块化的设计&#xff0c;支持不同规模大小的设计。每台超级计算机都在出厂前完成了搭建、布线和测试&#xff0c;从而大大加快了在用户数据中心的部署速度 。 NVIDIA DGX SuperPOD是下一代数据中心…

【设计模式】单例、工厂、策略、责任链模式

1.单例模式 单例模式确保某个类只有一个实例,主要使用有两种:懒汉式单例、饿汉式单例 单例模式有以下特点:   1、单例类只能有一个实例。   2、单例类必须自己创建自己的唯一实例。   3、单例类必须给所有其他对象提供这一实例。 使用场景: 数据库连接池:单例模式…

Python 算法交易实验87 QTV200日常推进-沪深300的交易量统计

说明 上一篇 讲到&#xff0c;就全市场的交易量来看&#xff0c;近3年也看不出很奇怪的地方&#xff1b;因此&#xff0c;交易量[支持度]不足而导致的策略失灵似乎也说不通。 为了进一步确认&#xff0c;我打算&#xff1a; 1 获取沪深300成分股&#xff0c;只统计成分股的交…

RDD、DataFrame、DataSet(Spark)

RDD、DataFrame、DataSet RDD (弹性分布式数据集)&#xff1a; 版本: Spark的初始版本&#xff0c;1.0开始提供。特性: RDD是Spark的基础数据结构&#xff0c;表示一个不可变的分布式对象集合。可以通过转换操作&#xff08;如map、filter、flatMap&#xff09;和行动操作&…

outlook设置规则后,规则无法自动运行的解决方案

outlook设置规则后&#xff0c;规则无法自动运行的解决方案 问题描述解决方案说明 问题描述 在outlook设置规则对邮件进行文件夹移动时&#xff0c;有时会出现规则无法自动运行的情况。出现这种情况有很多原因和解决方案&#xff0c;本文列出其中一种。 解决方案 outlook版本…