Java中字符串中子串的查找共有四种方法(indexof())

2023-05-16

亲测可用,若有疑问请私信

indexOf 方法返回一个整数值,指出 String 对象内子字符串的开始位置。如果没有找到子字符串,则返回-1。
如果 startindex 是负数,则 startindex 被当作零。如果它比最大的字符位置索引还大,则它被当作最大的可能索引。

Java中字符串中子串的查找共有四种方法,如下:
1、int indexOf(String str) :返回第一次出现的指定子字符串在此字符串中的索引。 
2、int indexOf(String str, int startIndex):从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引。 
3、int lastIndexOf(String str) :返回在此字符串中最右边出现的指定子字符串的索引。 
4、int lastIndexOf(String str, int startIndex) :从指定的索引处开始向后搜索,返回在此字符串中最后一次出现的指定子字符串的索引。

复制代码


public class Test {  
    public static void main(String[] args) {  
        String s = "xXccxxxXX";  
        // 从头开始查找是否存在指定的字符         //结果如下   
        System.out.println(s.indexOf("c"));     //2  
        // 从第四个字符位置开始往后继续查找,包含当前位置  
        System.out.println(s.indexOf("c", 3));  //3  
        //若指定字符串中没有该字符则系统返回-1  
        System.out.println(s.indexOf("y"));     //-1  
        System.out.println(s.lastIndexOf("x")); //6  
    }  
}  

复制代码

复制代码


private static void testIndexOf() {  
    String string = "aaa456ac";  
  
    //查找指定字符是在字符串中的下标。在则返回所在字符串下标;不在则返回-1.  
    System.out.println(string.indexOf("b"));//indexOf(String str);返回结果:-1,"b"不存在  
  
    // 从第四个字符位置开始往后继续查找,包含当前位置  
    System.out.println(string.indexOf("a",3));//indexOf(String str, int fromIndex);返回结果:6  
  
    //(与之前的差别:上面的参数是 String 类型,下面的参数是 int 类型)参考数据:a-97,b-98,c-99  
  
    // 从头开始查找是否存在指定的字符  
    System.out.println(string.indexOf(99));//indexOf(int ch);返回结果:7  
    System.out.println(string.indexOf('c'));//indexOf(int ch);返回结果:7  
  
    //从fromIndex查找ch,这个是字符型变量,不是字符串。字符a对应的数字就是97。  
    System.out.println(string.indexOf(97,3));//indexOf(int ch, int fromIndex);返回结果:6  
    System.out.println(string.indexOf('a',3));//indexOf(int ch, int fromIndex);返回结果:6  
  
    //这个就是灵活运用String类提供的方法,拆分提供的字符串。  
    //String s = "D:\\Android\\sdk\\add-ons";  
    //System.out.println(s);  
    //while (s.lastIndexOf("\\") > 0) {  
    //    s = s.substring(0, s.lastIndexOf("\\"));  
    //    System.out.println(s);  
    //}  
}  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java中字符串中子串的查找共有四种方法(indexof()) 的相关文章

  • Android Studio 在编译时未检测到支持库

    由于 Android Studio 将成为 Android 开发的默认 IDE 因此我决定将现有项目迁移到 Android studio 中 项目结构似乎不同 我的项目中的文件夹层次结构如下 Complete Project gt idea
  • JNI 不满意链接错误

    我想创建一个简单的 JNI 层 我使用Visual studio 2008创建了一个dll Win 32控制台应用程序项目类型 带有DLL作为选项 当我调用本机方法时 出现此异常 Exception occurred during even
  • 在数据流模板中调用 waitUntilFinish() 后可以运行代码吗?

    我有一个批处理 Apache Beam 作业 它从 GCS 获取文件作为输入 我的目标是根据执行后管道的状态将文件移动到两个 GCS 存储桶之一 如果管道执行成功 则将文件移动到存储桶 A 否则 如果管道在执行过程中出现任何未处理的异常 则
  • Convert.FromBase64String 方法的 Java 等效项

    Java 中是否有相当于Convert FromBase64String http msdn microsoft com en us library system convert frombase64string aspx which 将指
  • java中删除字符串中的特殊字符?

    如何删除字符串中除 之外的特殊字符 现在我用 replaceAll w s 它删除了所有特殊字符 但我想保留 谁能告诉我我该怎么办 Use replaceAll w s 我所做的是将下划线和连字符添加到正则表达式中 我添加了一个 连字符之前
  • jdbc4.MySQLSyntaxErrorException:数据库中不存在表

    我正在使用 SpringBoot 开发一个网络应用程序 这是我的application properties文件来指定访问数据库的凭据 spring datasource driverClassName com mysql jdbc Dri
  • 如何在jsp代码中导入java库?

    我有以下jsp代码 我想添加 java io 等库 我怎样才能做到这一点
  • 迁移到 java 17 后有关“每个进程的内存映射”和 JVM 崩溃的 GC 警告

    我们正在将 java 8 应用程序迁移到 java 17 并将 GC 从G1GC to ZGC 我们的应用程序作为容器运行 这两个基础映像之间的唯一区别是 java 的版本 例如对于 java 17 版本 FROM ubuntu 20 04
  • Java中接口作为方法参数

    前几天去面试 被问到了这样的问题 问 反转链表 给出以下代码 public class ReverseList interface NodeList int getItem NodeList nextNode void reverse No
  • 如何将文件透明地传输到浏览器?

    受控环境 IE8 IIS 7 ColdFusion 当从 IE 发出指向媒体文件 例如 mp3 mpeg 等 的 GET 请求时 浏览器将启动关联的应用程序 Window Media Player 我猜测 IIS 提供文件的方式允许应用程序
  • 检查 Android 手机上的方向

    如何查看Android手机是横屏还是竖屏 当前配置用于确定要检索的资源 可从资源中获取Configuration object getResources getConfiguration orientation 您可以通过查看其值来检查方向
  • 尝试使用 Ruby Java Bridge (RJB) gem 时出现错误“无法创建 Java VM”

    我正在尝试实现 Ruby Java Bridge RJB gem 来与 JVM 通信 以便我可以运行 Open NLP gem 我在 Windows 8 上安装并运行了 Java 所有迹象 至少我所知道的 都表明 Java 已安装并可运行
  • Java直接内存:在自定义类中使用sun.misc.Cleaner

    在 Java 中 NIO 直接缓冲区分配的内存通过以下方式释放 sun misc Cleaner实例 一些比对象终结更有效的特殊幻像引用 这种清洁器机制是否仅针对直接缓冲区子类硬编码在 JVM 中 或者是否也可以在自定义组件中使用清洁器 例
  • org.jdesktop.application 包不存在

    几天以来我一直在构建一个 Java 桌面应用程序 一切都很顺利 但是今天 当我打开Netbeans并编译文件时 出现以下编译错误 Compiling 9 source files to C Documents and Settings Ad
  • 应用程序关闭时的倒计时问题

    我制作了一个 CountDownTimer 代码 我希望 CountDownTimer 在完成时重新启动 即使应用程序已关闭 但它仅在应用程序正在运行或重新启动应用程序时重新启动 因此 如果我在倒计时为 00 10 分钟 秒 时关闭应用程序
  • 运行 Jar 文件时出现问题

    我已将 java 项目编译成 Jar 文件 但运行它时遇到问题 当我跑步时 java jar myJar jar 我收到以下错误 Could not find the main class myClass 类文件不在 jar 的根目录中 因
  • Java - 不要用 bufferedwriter 覆盖

    我有一个程序可以将人员添加到数组列表中 我想做的是将这些人也添加到文本文件中 但程序会覆盖第一行 因此这些人会被删除 如何告诉编译器在下一个空闲行写入 import java io import java util import javax
  • 将2-3-4树转换为红黑树

    我正在尝试将 2 3 4 树转换为 java 中的红黑树 但我无法弄清楚它 我将这两个基本类编写如下 以使问题简单明了 但不知道从这里到哪里去 public class TwoThreeFour
  • JAVA - 如何从扫描仪读取文件中检测到“\n”字符

    第一次海报 我在读取文本文件的扫描仪中读取返回字符时遇到问题 正在读取的文本文件如下所示 test txt start 2 0 30 30 1 1 90 30 0 test txt end 第一行 2 表示两个点 第二行 位置索引 0 xp
  • java8 Collectors.toMap() 限制?

    我正在尝试使用java8Collectors toMap on a Stream of ZipEntry 这可能不是最好的想法 因为在处理过程中可能会发生异常 但我想这应该是可能的 我现在收到一个我不明白的编译错误 我猜是类型推理引擎 这是

随机推荐

  • ShareSDK 3.4.0 isWXAppInstalled 返回NO

    升级到3 4 0版本的ShareSDK之后 xff0c 发现 WXApi isWXAppInstalled 方法一直返回false xff0c 无法正常使用 初步怀疑是ShareSDK自己的bug 查找资料后发现 xff0c 解决方案居然是
  • iOS网络诊断功能 ping traceroute

    最近工作中总是遇到需要排查移动客户端网络状况的情况 xff0c 可能由于某些地区网络运营商的问题 xff0c 导致客户端某些功能不正常 xff0c 现在的做法也是非常麻烦的 xff1a 某用户反馈某一功能不能用由运营联系到该用户运营指导该用
  • macOS10.12下如何丝滑的使用appium?

    appium是一个自动化测试的跨平台解决方案 xff0c 这篇文章针对最新版的xcode 8 2和mac OS 10 12给出基本完成的部署过程 xff0c 值得一看 实际操作过程中 xff0c 有几个地方需要注意 xff1a 不要忘记启动
  • iOS如何在页面销毁时优雅的cancel网络请求

    大家都知道 xff0c 当一个网络请求发出去之后 xff0c 如果不管不顾 xff0c 有可能出现以下情况 xff1a 进入某个页面 xff0c 做了某种操作 xff08 退出页面 切换某个tab等等 xff09 导致之前的请求变成无用请求
  • glibc源码解读——malloc

    通过宏定义的展开 xff0c 找到malloc的函数地址 xff1a define C SYMBOL NAME name name define ASM LINE SEP void libc malloc size t bytes libc
  • 音视频开发入门基础知识(视频入门篇)

    RTSP实时音视频开发实战课程 xff1a lt RTSP实时音视频开发实战 gt 音视频开发入门基础知识 xff08 音频入门篇 xff09 目录 一 前言 二 视频采集和显示 三 视频常见的格式 四 RGB转YUV和YUV转RGB 五
  • Rust 类型、泛型和特征

    Rust 创建泛型 generic function rs fn give me lt T gt value T let 61 value fn main let a 61 34 generics 34 let b 61 1024 give
  • Vmware虚拟机硬盘扩容: Linux下虚拟机硬盘空间扩展及挂载配置

    都是自己使用过程中的小经验 xff0c 分享给大家 希望能互相帮助 进入正题 xff1a 大家是不是会遇到最初分配linux虚拟机硬盘后期不够用的情况 xff0c xff08 因为是我之前用友善之臂的虚拟机配ARM板学习 xff0c 只有2
  • 数据结构之冒泡排序

    文字描述 xff08 以升序为例 依次比较数组中相邻两个元素大小 xff0c 若a i gt a 43 1 xff0c 则交换两个元素 xff0c 两两都比较一遍称为一轮冒泡 xff0c 结果是让最大的元素排至最后重复以上步骤 xff0c
  • 十进制转八进制的方法

    include lt stdio h gt int main int n printf 34 请输入一个十进制的数 xff1a 34 scanf 34 d 34 amp n int i 61 0 int arr 100 while n 61
  • Nodejs之目录介绍及app.js说明

    随时随地阅读更多技术实战干货 xff0c 获取项目源码 学习资料 xff0c 请关注源代码社区公众号 ydmsq666 转自 xff1a https www cnblogs com Chen xy p 4466351 html nodejs
  • 源码学习笔记之Openssl

    目录 xff1a apps apps c apps h app rand c asn1pars c build info ca cert srl ca key pem ca req pem ca c CA pl in cert pem ci
  • Segmentation Fault错误原因总结

    一 什么是 Segmentation fault in Linux 所谓的段错误就是指访问的内存超过了系统所给这个程序的内存空间 通常这个值是由gdtr来保存的 他是一个48位的寄存器 其中的32位是保存由它指向的gdt表 后13位保存相应
  • 树莓派使用MobaXterm实现SSH和VNC

    树莓派使用MobaXterm实现SSH和VNC terminal推荐 xff1a MobaXterm 一 开机SSH无线连接 前提 xff1a 树莓派和PC在同一局域网下 xff0c 通过路由器获得树莓派ip 打开ssh boot目录新建文
  • 【Qt】QtCreator远程部署、调试程序

    1 添加远程设备 1 QtCreator 工具 gt 选项 gt 设备 gt 添加 2 设备设置向导选择 gt Generic Linux Device gt 开启向导 3 填写 标识配置的名称 随便写 设备IP 用户名 gt 下一步 4
  • Debian备份与还原

    备份 xff1a sudo su cd tar cvpzf backup tgz exclude 61 proc exclude 61 lost 43 found exclude 61 backup tgz exclude 61 mnt e
  • 微信开放平台-第三方平台开发配置及常见的问题

    目录 概述 参考文档 开源项目 amp 工具 第三方平台设置 问题及解决方法 概述 本实例 xff1a 第三方平台 43 微信公众号 xff08 服务号 xff09 微信开放平台 第三方平台 xff0c 为广大公众号和小程序提供运营服务和行
  • 【Python包管理系列1】python打包发布到PyPI全过程(入门版)

    文章目录 目的准备知识PyPIPyPAsetuptoolsbuildtwine 实战过程总结 目的 如果发布一个python包到pypi上 xff0c 共他人使用 xff0c 本文试图讲清楚 准备知识 PyPI 官网地址 xff1a htt
  • Web自动化测试(二)—— Selenium-API操作

    其他Web测试知识参考 xff1a Web自动化测试 目录 一 元素定位 1 如何进行元素定位 xff1f 2 浏览器开发者工具 2 1 如何使用浏览器开发者工具 二 元素定位方式 1 id定位 2 name定位 3 class name定
  • Java中字符串中子串的查找共有四种方法(indexof())

    亲测可用 xff0c 若有疑问请私信 indexOf 方法返回一个整数值 xff0c 指出 String 对象内子字符串的开始位置 如果没有找到子字符串 xff0c 则返回 1 如果 startindex 是负数 xff0c 则 start