Java字符串查找

news2024/11/25 0:25:46

目录

1.查找字符

(1)以索引查找字符

 (2)以字符查找索引

2.查找字符串


在给定的字符串中查找需要的字符或字符串是常见的操作,以下是String类中常用的查找方法。

1.查找字符

查找字符分为两种情况:一种是根据索引查找该索引处的字符,另一种是根据给定的字符查找该字符的索引

(1)以索引查找字符

方法:

char charAt(int index)

该方法返回 index 位置上的字符,若 index 为负数或是越界,则抛出StringIndexOutOfBoundsException 异常

public class Test {
    public static void main(String[] args) {
        String str = "abcdefg";
        char ch = str.charAt(2);
        System.out.println(ch);//输出c
    }
}

 

 (2)以字符查找索引

由于字符在字符串中可能出现多次,因此查找的方式不同,返回的索引也不相同,可以从前向后查找、从后向前查找,或是从指定位置开始查找

方法:

int indexOf(int ch)

从0索引开始找ch,返回ch第一次出现的位置,没有则返回 -1

public class Test {
    public static void main(String[] args) {
        String str = "abcdefgaaa";
        int index1 = str.indexOf('a');
        int index2 = str.indexOf('m');
        System.out.println(index1);//输出0
        System.out.println(index2);//字符串中无字符m,找不到,返回-1.因此输出-1
    }
}

方法:

int lastIndexOf(int ch)

public class Test {
    public static void main(String[] args) {
        String str = "abcdefgaaa";
        int index = str.lastIndexOf('a');
        System.out.println(index);//输出9
    }
}

方法:

int indexOf(int ch, int formIndex)

fromIndex 位置开始找ch第一次出现的位置,没有则返回 -1

public class Test {
    public static void main(String[] args) {
        String str = "abcdefgaaa";
        int index = str.indexOf('a',3);//从3索引位置开始找a
        System.out.println(index);//输出7
    }
}

方法:

 int lastIndexOf(int ch, int fromIndex)

fromIndex 位置开始,向前找ch第一次出现的位置,没有则返回 -1

public class Test {
    public static void main(String[] args) {
        String str = "abcdefgaaa";
        int index = str.lastIndexOf('a',8);//从8索引位置开始向前查找a
        System.out.println(index);//输出8
    }
}

2.查找字符串

由于字符串在指定的字符串中也可能出现多次,因此也可以从前向后查找、从后向前查找,或是从指定位置开始查找。

方法:

int indexOf(String str)

从0索引位置开始查找字符串str,返回 str 第一次出现的位置,没有则返回 -1 

public class Test {
    public static void main(String[] args) {
        String str = "aaabbbcccdedfg";
        String s = "abc";
        int index = str.indexOf(s);//字符串str中不包含abc,返回-1
        System.out.println(index);//输出-1
    }
}

方法:

int indexOf(String str, int fromIndex)

从fromIndex位置开始查找 str,返回 str  第一次出现的位置,没有则返回 -1

public class Test {
    public static void main(String[] args) {
        String str = "aaabbbcccdedfg";
        String s = "bbc";
        int index = str.indexOf(s,3);
        System.out.println(index);//输出4
    }
}

方法:

int lastIndexOf(String str)

从后向前找,返回 str 第一次出现的位置,没有则返回-1

public class Test {
    public static void main(String[] args) {
        String str = "abcabcabc";
        String s = "abc";
        int index = str.lastIndexOf(s);
        System.out.println(index);//输出6
    }
}

 方法:

int lastIndexOf(String str, int fromIndex)

从 fromIndex 位置开始向前查找 str,返回 str 第一次出现的位置,没有则返回 -1

public class Test {
    public static void main(String[] args) {
        String str = "abcabcabc";
        String s = "abc";
        int index = str.lastIndexOf(s,5);//从5索引位置开始向前查找s
        System.out.println(index);//输出3
    }
}

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

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

相关文章

【两周学会FPGA】从0到1学习紫光同创FPGA开发|盘古PGL22G开发板学习之DDR3 IP简单读写测试(六)

本原创教程由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处 适用于板卡型号: 紫光同创PGL22G开发平台(盘古22K) 一:盘古22K开发板(紫光同创PGL22G开发…

【Ubuntu20.04】【验证可行】修改切换输入法的快捷键

网上好多博客都是说添加输入法什么的,没说到关键点。 修改切换输入法的快捷键,是在系统设置的键盘快捷键那里修改的, 不是在输入法那里改的,如下图 看到上面的【Keyboard shortcuts】/ 【Typing】 默认是SuperSpace【微软键盘就…

电梯五方对讲接口说明 Sip五方对讲使用说明

1.2/4线接线模块输出接口;接4方对讲设备:12V,2/4线接线模块供电输入 -:GND,接地 R二/四线R Li二四线L 2.RS-485接口:预留援口,可接读卡器、楼层控制器、探头,需要软件额外开发实现。 3.短路输出接口2:对应短路输入接口&#x…

Vue2+Vue3基础入门到实战项目(六)——课程学习笔记

镇贴!!! day07 vuex的基本认知 使用场景 某个状态 在 很多个组件 来使用 (个人信息) 多个组件 共同维护 一份数据 (购物车) 构建多组件共享的数据环境 1.创建项目 vue create vuex-demo 2.创建三个组件, 目录如下 |-components |--Son1.…

centos密码过期导致navicat无法通过SSH登录阿里云RDS问题

具体错误提示:2013 - Lost connection to server at "hand hake: reading initial communication packet, system error: 0 解决办法:更新SSH服务器密码

超越时间与人力的软件开发智慧:《人月神话》

目录 1、写在前面2、沟通!沟通!沟通!3、“银弹论”4、“人月神话”不能成立的原因5、影响力6、图书推荐 1、写在前面 《人月神话》是由计算机科学家弗雷德里克布鲁克斯所著的一本经典著作,首次出版于1975年。这本书以一个个小故事…

@Controller和@RestController注解区别

😜作 者:是江迪呀✒️本文关键词:SpringBoot、Spring、注解、Controller、RestController☀️每日 一言:弗雷尔卓德是个好地方,可以造东西、打架、大吃一顿,啊~~ 甜蜜的家园呐 ——《英雄联盟》…

微信小程序源码【195套】【源码导入视频教程+源码导入文档教程+详细图文文档教程】

一、项目说明 盒马鲜生.zip 轻客洗衣.zip 云文档.zip 仿ofo共享单车.zip 仿美团外卖.zip 仿饿了么.zip 灵犀外卖.zip 小契约(交友互动小程序).zip 信息科技公司展示小程序.zip 华云智慧园区.zip 房地产公司展示.zip 企业OA系统小程序.zip 优惠券卡卷小程…

设计模式篇(Java):装饰者模式

👨‍💻本文专栏:设计模式篇-装饰者模式 👨‍💻本文简述:装饰者模式的详解以及jdk中的应用 👨‍💻上一篇文章: 设计模式篇(Java):桥接模式 👨‍&am…

业务安全及案例实战

文章目录 业务安全1. 业务安全概述1.1 业务安全现状1.1.1 业务逻辑漏洞1.1.2 黑客攻击目标 2. 业务安全测试2.1 业务安全测试流程2.1.1 测试准备2.1.2 业务调研2.1.3 业务建模2.1.4 业务流程梳理2.1.5 业务风险点识别2.1.6 开展测试2.1.7 撰写报告 3. 业务安全经典场景3.1 业务…

conda的使用教程

conda的介绍 简单来说,conda软件就是来管理包的软件。以Python为例,在实际生活中,我们要处理多个不同的项目,因此,要安装不同的项目所需要的包,为了管理方便,conda就是用来打理不同项目的包&…

软考高级架构师下篇-13云原生架构设计理论与实践

目录 1. 考情分析2. 云原生架构内涵3. 云原生架构相关技术4. 前文回顾1. 考情分析 软考你报名了吗?下半年再来卷一个证书吧 本节主要学习云原生架构设计理论与实践。根据考试大纲,本小时知识点会涉及单选题型(约占2~4分)、案例题(25分)和论文题,本小时节内容偏重于方法…

自动化测试面试常见技术题目

1:一行代码实现1--100之和 print(sum(list(range(1,101)))) 2:如何在一个函数内部修改全局变量 global  修改全局变量 局部作用域只能调用全局作用域的变量,但是不熊修改全局作用域的变量,如果想要修改全局作用域的变量需要gl…

2023年中国信通院铸基计划“文本图像篡改检测系统技术规范”研讨会成功召开

2023年中国信通院铸基计划“文本图像篡改检测系统技术规范”(简称“规范”)研讨会于2023年8月16日在中国信息通信研究院成功召开,来自中国信息通信研究院、上海合合信息科技股份有限公司(简称“合合信息”)、华南理工大…

【文末送书】全栈开发流程——后端连接数据源(二)

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 「推荐专栏」: ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄,vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff…

【C#项目实战】控制台游戏 勇士斗恶龙(2)——游戏场景的设置以及玩家战斗逻辑

君兮_的个人主页 即使走的再远,也勿忘启程时的初心 C/C 游戏开发 Hello,米娜桑们,这里是君兮_,最近开始正式的步入学习游戏开发的正轨,想要通过写博客的方式来分享自己学到的知识和经验,这就是开设本专栏的目的。希望…

【web开发】2、css基础

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、CSS是什么?二、使用步骤2.1.css的存放位置2.2.选择器2.3.常用CSS样式介绍与示例 一、CSS是什么? 层叠样式表(英文全称:Casc…

vue2+element-ui批量导入方法并判断上传的文件是否为xls或xlsx

业务需求: 代码结构: <el-dialogtitle"批量导入":close-on-click-modal"true"close"close()":visible"true"width"35%":center"true"><div class"el-dialog-div"><!-- 头部区域布局 -…

万物互联:软件与硬件的协同之道

在当今数字化时代&#xff0c;我们身边的一切似乎都与计算机和互联网有关。从智能手机到智能家居设备&#xff0c;从自动驾驶汽车到工业生产线&#xff0c;无论我们走到哪里&#xff0c;都能看到软件和硬件的协同作用。本文将探讨这种协同作用&#xff0c;解释软件和硬件如何相…

R语言机器学习之caret包详解(二:模型的训练以及调参)

R语言机器学习之caret包详解&#xff08;二&#xff1a;模型的训练以及调参&#xff09; 前言caret包模型调优的策略、示例、以及一些小tips 前言 在之前的博客中我们详细介绍过了数据的拆分策略、各种数据处理的方法、各种交叉验证的方法&#xff0c;并且以示例介绍了R函数cre…