Java中indexOf() 方法 总计及其日常使用

简介: Java中indexOf() 方法 总计及其日常使用

java 中indexof():

指定字符在此实例中的第一个匹配项的索引并从指定字符位置开始搜索,检查指定数量的字符位置。其实就是在字符串中,对其子串的查找。


Java中提供了四中查找方法: 1、int indexOf(String str) :返回第一次出现的指定子字符串在此字符串中的索引。

2、int indexOf(String str, intstartIndex):从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引。

3、int lastIndexOf(String str) :返回在此字符串中最右边出现的指定子字符串的索引。

4.intlastIndexOf是一个Java语言中的字符串方法。该方法接收两个参数,第一个参数是要查找的子字符串str,第二个参数是开始搜索的索引位置startIndex。它会从指定的索引位置向后搜索,并返回最后一次出现指定子字符串的索引位置。

如果在指定的索引位置之后没有找到子字符串,则返回-1。如果子字符串为空字符串或者搜索索引超出了字符串的长度,则返回字符串的长度。下面是一个示例代码:

String str = "Hello, World!";
int index = str.lastIndexOf("o", 7);
System.out.println(index); // 输出5


在以上示例代码中,我们首先创建了一个字符串str,然后调用了lastIndexOf方法来查找最后一次出现字符o的位置,在字符串str中从索引0到索引7的范围内进行查找,即"Hello, ",结果为5。


package com.example.democrud.democurd.controller;
public class indexof {
    public static void main(String[] args) {
        String s = "yanwenchaoyan";
        // 从头开始查找是否存在指定的字符
        //如不存在则为 -1 ,存在则显示下标位置 例如-- (0,1,2,3)
        int le = s.indexOf("l");
        int les = s.indexOf("n");
        System.out.println("yanwenchao 的不存在则为是"+le);
        System.out.println("yanwenchao的存在的下标为"+les);
        System.out.println("---------------------------------------");
        // 从第四个字符位置开始往后继续查找,包含当前位置,前面的就过滤掉
        int i = s.indexOf("y", 3);
        System.out.println("yanwenchao的下标位置是"+i);
        System.out.println("---------------------------------------");
        String s1 = "01234560123456";
        int ls =s1.indexOf("123");
        int lss = s1.lastIndexOf("123");
        //反方向
        int lsss=s1.lastIndexOf("123",4);
        System.out.println("下标地址"+ls);
        System.out.println("下标地址"+lss);
        System.out.println("下标地址"+lsss);
        System.out.println("---------------------------------------");
    }
}


运行结果

yanwenchao 的不存在则为是-1
yanwenchao的存在的下标为2
---------------------------------------
yanwenchao的下标位置是10
---------------------------------------
下标地址1
下标地址8
下标地址1
---------------------------------------


注意:指定了索引位置之后,他或从索引后面开始进行查询(下标 0,1,2,…),返回下标值; 具体理解请看demo;


获取动态数组元素的索引:

如果我们想获得最后一次出现 Runoob 的位置,我们可以使用 lastIndexOf() 方法。

public static void main(String[] args){
            // 创建一个数组
            ArrayList<String> sites = new ArrayList<>();
            sites.add("Google");
            sites.add("Runoob");
            sites.add("Taobao");
            System.out.println("网站列表: " + sites);
            // 查找位置索引值为 Runoob 的元素 存在他的下标为1,则返回1
            //针对新手好理解(Google==>0(下标),Runoob==>1(下标),Taobao==>2(下标)) 故返回 1
            //则数组下标为1
            int position1 = sites.indexOf("Runoob");
            System.out.println("Runoob 的索引位置: " + position1);
            // 查找位置索引值为 Weibo 的元素  不存在返回-1
            int position2 = sites.indexOf("Weibo");
            System.out.println("Weibo 的索引位置: " + position2);
        }


运行结果是

网站列表: [Google, Runoob, Taobao]
Runoob 的索引位置: 1
Weibo 的索引位置: -1


lastIndexOf


lastIndexOf() 方法返回指定元素在动态数组中最后一次出现的位置。


public static void main(String[] args){
        // 创建一个数组
        ArrayList<String> sites = new ArrayList<>();
        //Runoob 存在2个 下面可得出第二次出现的位置也就是最后一次的位置
        sites.add("Google");
        sites.add("Runoob");
        sites.add("Taobao");
        sites.add("Runoob");
        System.out.println("网站列表: " + sites);
        // 获取 Runoob 最后一次出现的位置
        int position1 = sites.lastIndexOf("Runoob");
        System.out.println("Runoob 最后出现的位置: " + position1);
        // Wiki 不在 arraylist 中
        // 返回 -1
        int position2 = sites.lastIndexOf("Wiki");
        System.out.println("Wiki 最后出现的位置: " + position2);
    }
}


加油把! 好好学习天天向上; 哈哈

相关文章
|
27天前
|
Java 测试技术 开发者
Java零基础-indexOf(String str)详解!
【10月更文挑战第14天】Java零基础教学篇,手把手实践教学!
111 65
|
15天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
55 4
|
26天前
|
Java API
Java 对象释放与 finalize 方法
关于 Java 对象释放的疑惑解答,以及 finalize 方法的相关知识。
45 17
|
19天前
|
Java 测试技术 Maven
Java一分钟之-PowerMock:静态方法与私有方法测试
通过本文的详细介绍,您可以使用PowerMock轻松地测试Java代码中的静态方法和私有方法。PowerMock通过扩展Mockito,提供了强大的功能,帮助开发者在复杂的测试场景中保持高效和准确的单元测试。希望本文对您的Java单元测试有所帮助。
44 2
|
27天前
|
Java 开发者
在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口
【10月更文挑战第20天】在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口。本文揭示了这两种方式的微妙差异和潜在陷阱,帮助你更好地理解和选择适合项目需求的线程创建方式。
19 3
|
29天前
|
Java 大数据 API
别死脑筋,赶紧学起来!Java之Steam() API 常用方法使用,让开发简单起来!
分享Java Stream API的常用方法,让开发更简单。涵盖filter、map、sorted等操作,提高代码效率与可读性。关注公众号,了解更多技术内容。
|
27天前
|
Java 开发者
在Java多线程编程中,选择合适的线程创建方法至关重要
【10月更文挑战第20天】在Java多线程编程中,选择合适的线程创建方法至关重要。本文通过案例分析,探讨了继承Thread类和实现Runnable接口两种方法的优缺点及适用场景,帮助开发者做出明智的选择。
17 2
|
27天前
|
安全 Java
Java多线程通信新解:本文通过生产者-消费者模型案例,深入解析wait()、notify()、notifyAll()方法的实用技巧
【10月更文挑战第20天】Java多线程通信新解:本文通过生产者-消费者模型案例,深入解析wait()、notify()、notifyAll()方法的实用技巧,包括避免在循环外调用wait()、优先使用notifyAll()、确保线程安全及处理InterruptedException等,帮助读者更好地掌握这些方法的应用。
17 1
|
27天前
|
Java 开发者
Java多线程初学者指南:介绍通过继承Thread类与实现Runnable接口两种方式创建线程的方法及其优缺点
【10月更文挑战第20天】Java多线程初学者指南:介绍通过继承Thread类与实现Runnable接口两种方式创建线程的方法及其优缺点,重点解析为何实现Runnable接口更具灵活性、资源共享及易于管理的优势。
33 1
|
27天前
|
Java
在Java多线程编程中,`wait()`和`notify()`方法的相遇如同一场奇妙的邂逅
在Java多线程编程中,`wait()`和`notify()`方法的相遇如同一场奇妙的邂逅。它们用于线程间通信,使线程能够协作完成任务。通过这些方法,生产者和消费者线程可以高效地管理共享资源,确保程序的有序运行。正确使用这些方法需要遵循同步规则,避免虚假唤醒等问题。示例代码展示了如何在生产者-消费者模型中使用`wait()`和`notify()`。
25 1
下一篇
无影云桌面