Java字符串查找(3种方法)

news2024/11/18 10:44:17

在给定的字符串中查找字符或字符串是比较常见的操作。字符串查找分为两种形式:一种是在字符串中获取匹配字符(串)的索引值,另一种是在字符串中获取指定索引位置的字符。

根据字符查找

String 类的 indexOf() 方法和 lastlndexOf() 方法用于在字符串中获取匹配字符(串)的索引值。

1. indexOf() 方法

indexOf() 方法用于返回字符(串)在指定字符串中首次出现的索引位置,如果能找到,则返回索引值,否则返回 -1。该方法主要有两种重载形式:

其中,str 表示指定字符串;value 表示待查找的字符(串);fromIndex 表示查找时的起始索引,如果不指定 fromIndex,则默认从指定字符串中的开始位置(即 fromIndex 默认为 0)开始查找。

例如,下列代码在字符串“Hello Java”中查找字母 v 的索引位置。

上述代码执行后 size 的结果为 8,它的查找过程如图 1 所示。

图1 indexOf() 方法查找字符过程

例 1

编写一个简单的 Java 程序,演示 indexOf() 方法查找字符串的用法,并输出结果。代码如下:运行后的输出结果如下:

原始字符串是'today,monday,sunday'

indexOf("day")结果:2

indexOf("day",5)结果:9

indexOf("o")结果:1

indexOf("o",6)结果:7

2. lastlndexOf() 方法

lastIndexOf() 方法用于返回字符(串)在指定字符串中最后一次出现的索引位置,如果能找到则返回索引值,否则返回 -1。该方法也有两种重载形式:

注意:lastIndexOf() 方法的查找策略是从右往左查找,如果不指定起始索引,则默认从字符串的末尾开始查找。

例 2

编写一个简单的 Java 程序,演示 lastIndexOf() 方法查找字符串的用法,并输出结果。代码如下:运行后的输出结果如下:

原始字符串是'today,monday,Sunday'

lastIndexOf("day")结果:16

lastIndexOf("day",5)结果:2

lastIndexOf("o")结果:7

lastlndexOf("o",6)结果:1

根据索引查找

String 类的 charAt() 方法可以在字符串内根据指定的索引查找字符,该方法的语法形式如下:

字符串名.charAt(索引值)

提示:字符串本质上是字符数组,因此它也有索引,索引从零开始。

charAt() 方法的使用示例如下:

https://www.bilibili.com/video/BV12M411v7Mv/?p=4&spm_id_from=pageDriver&vd_source=96bd6c0a2bc667ee6713079257ccf5ad

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

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

相关文章

金融公司在 2022 年扩大了对下一代技术的投资

根据 Broadridge Financial Solutions, Inc. 的一份新报告,大多数金融服务公司现在认为数字化转型对其业务至关重要,并且已经在寻求下一波技术来帮助取得成功。 在对 500 名最高管理层高管及其在全球买方和卖方的直接下属进行的 2023 年数字化转型和下…

代码随想录算法训练营第五十七天_第九章_动态规划 | 1143.最长公共子序列、1035.不相交的线、53. 最大子数组和 动态规划

LeetCode 1143.最长公共子序列 视频讲解https://www.bilibili.com/video/BV1ye4y1L7CQ文章讲解https://programmercarl.com/1143.%E6%9C%80%E9%95%BF%E5%85%AC%E5%85%B1%E5%AD%90%E5%BA%8F%E5%88%97.html 思路:代码:LeetCode 1035.不相交的线 视频讲解h…

技术开发119

技术开发119 业务内容: 汽车零部件的制造产业用机械零部件的设计、制造、组装电机零部件的制造 公司简介: 董事长:管原胜安 资本金:3200万日元 员工数:36名 成立时间:1972年7月 资格认证&#xff1a…

【学习笔记】coursera | Computational Neuroscience | Week 1

Course Introduction 1.1 Course Introduction 三种模型 Descriptive models of the brain(描述型, what):神经元如何对外部刺激做出反应?用神经元编码模型如何量化描述?如何从神经元中获取信息(解码&am…

Linux 中 su 命令的使用

目录 🍍①普通用户切换 root 用户 🍉②root 用户切换普通用户 su 命令的作用是在 Linux 中切换用户,是英文单词:Switch(切换) User(用户) 的缩写。 语法: su [-] 用户…

三维引擎大盘点

近年,智慧城市、数字孪生大热,三维引擎就成为了绕不过去的一个词,但是目前市场的的三维引擎多的让人头晕目眩,他们各自都有哪些优缺点呢,今天我们就来盘点下主流的三维引擎。 常见的三维引擎按平台可分为客户端三维引擎…

1613_PC汇编语言_位操作

全部学习汇总: GreyZhang/g_unix: some basic learning about unix operating system. (github.com) 这一次看一下位操作的章节。 如果是逻辑位操作其实不需要考虑大小端。 1. 移位操作在快速乘除法中经常用到。 2. 这里提到了一个算是移位,其实跟前面的…

Hive(4):场景案例:Apache Hive初体验

1 体验1:Hive使用起来和Mysql差不多吗? 1.1 背景 对于初次接触Apache Hive的人来说,最大的疑惑就是:Hive从数据模型看起来和关系型数据库mysql等好像。包括Hive SQL也是一种类SQL语言。那么实际使用起来如何? 1.2 过…

激光投影仪哪款好?坚果N1 Pro和海信Vidda C1和当贝X3测评

当贝x3、坚果N1Pro和海信Vidda C1都是近期比较热门的激光投影仪,作为消费者来说选择哪一款比较好呢?看看实测对比和参数对比就知道它们的区别了。(一)三款激光投影仪的实测对比1)外观对比:坚果N1 Pro枪灰加深灰的色彩组合,自带了一个云台,能够支持任意角度调整,但比普通的投影…

【6s965-fall2022】量化 Quantization Ⅰ

模型的大小不仅和参数量的多少有关,而且也和位宽有关。 ModelSize#ParameterBitWidth.ModelSize \#Parameter BitWidth. ModelSize#ParameterBitWidth. 低位宽的运算操作容易实现、运算速度快、功耗低。 什么是量化? 从广义上讲,量化是将连…

龙蜥开发者说:6 年前打开的开源“潘多拉盲盒”,如今都解了哪些未知数 | 第 15 期

「龙蜥开发者说」第 15 期来了!开发者与开源社区相辅相成,相互成就,这些个人在龙蜥社区的使用心得、实践总结和技术成长经历都是宝贵的,我们希望在这里让更多人看见技术的力量。本期故事,我们邀请了龙蜥社区开发者陈成…

PTA L1-020 帅到没朋友(详解)

前言:本期是关于帅到没朋友的详解,内容包括四大模块:题目,代码实现,大致思路,代码解读 今天你c了吗? 题目: 当芸芸众生忙着在朋友圈中发照片的时候,总有一些人因为太帅…

如何将视频制作成高清gif?试试这一招快速完成

随着现在短视频平台的兴起,越来越多的小伙伴在刷到好玩有趣的视频时都会下载下来,进行分享。但是,视频的体积往往比较大,传输起来非常的不方便。这时候就可以将视频转换成gif动图来使用。接下来,小编给大家分享几个视频…

CobaltStrike之宏钓鱼及shellcode 实验详细

文章目录预备知识实验目的实验地址实验环境实验步骤一启动cs服务器客户端连入服务器生成office宏病毒利用宏病毒上线CS生成宏文件利用成功实验步骤二实验步骤三预备知识 CobaltStrike是一款渗透测试神器,常被业界人称为CS神器。CobaltStrike已经不再使用MSF而是作为…

css图片铺满浏览器窗口且不变形

今天项目中提到一个需求,需要把背景图片铺满浏览器全屏,且图片不变形。 也就是说显示的宽高是不确定的,我第一反应就是background-size: 100% 100%;但是这样做有一个弊端。 下面结合代码图具体讨论一下: 首先,设计一个…

请求上下文头信息:User-Agent ,Referer,Form,Server,Allow,Accept-Range

User-Agent User-Agent 的组成 由1个product和后面零个或多个product信息组成 product包含两个部分,token和token指向的软件的版本号 举例中 Mozilla 5.0 表示浏览器兼容Mozilla 5.0版本的,后面的window 信息,就属于conment部分 RWS由一个…

36. 实战:基于上一节的全面升级——实现某音批量下载功能

目录 前言 目的 思路 代码实现 1. 先将下载单个视频的功能封装成函数 2. 获取下载列表 3. 创建线程池调用下载函数 完整源码 运行效果 总结 前言 上一节我们实现了某短视频平台的去水印下载功能,本节我们实现批量抓取:给定某一个用户主页&…

Cache的PLRU替换策略

LRU(Least Recently Used)替换策略是cache的经典替换策略之一,然而,LRU替换策略的硬件开销较大。因此,一些现代处理器,例如Intel 486和PowerPC,它们使用的cache替换策略是PLRU(pseudo-LRU)。 PLRU是LRU的一种近似方法,本文介绍PLRU中的tree-PLRU(tree-based pseudo-…

VSCode 配置 C/C++ 开发环境( MSVC )

0.绿色版本下载地址:https://www.aliyundrive.com/s/DMK13owZSrC绿色版本采用 VSCode User 1.7.4.2 X64 版本。绿色便携版本采用的生成工具来自 Visual C 2010 版本提供的 32 位工具链。Win 7 Win10 Win 11 可以正常运行。使用方法,下载文件后&#xff0…

微信小程序021理发店美容预约系统java nodejs php

美容预约小程序微信端要求在系统的手机上可以运行,主要实现了管理端;首页、个人中心、用户管理、服务项目管理、美容师管理、预约管理、类型管理、系统管理,微信端;首页、预约、我的等主要功能模块的操作和管理。 小程序前端框架&…