Java字符串查找

目录

1.查找字符

(1)以索引查找字符

(2)以字符查找索引

2.查找字符串


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

1.查找字符

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

(1)以索引查找字符

方法:

char charAt(int index)

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

java 复制代码
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

java 复制代码
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)

java 复制代码
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

java 复制代码
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

java 复制代码
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**

java 复制代码
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

java 复制代码
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

java 复制代码
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

java 复制代码
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
    }
}
相关推荐
考虑考虑4 分钟前
ScopedValue在JDK24以及JDK25的改动
java·后端·java ee
十五年专注C++开发6 分钟前
QT 中的元对象系统(六):connect函数详解
开发语言·c++·qt·设计模式·系统架构·qevent
kaikaile19959 分钟前
PHP计算过去一定时间段内日期范围函数
android·开发语言·php
E_ICEBLUE19 分钟前
Python 处理 Word 文档中的批注(添加、删除)
开发语言·python·microsoft·word
itachi-uchiha27 分钟前
关于Tomcat的页面后台管理默认设置
java·tomcat·firefox
骑着bug的coder30 分钟前
RestTemplate 和 Feign 传参差异导致的接口调用失败
java
momo_via43 分钟前
maven下载与安装及在IDEA中配置maven
java·maven·intellij-idea
勇闯逆流河1 小时前
【C++】红黑树详解
开发语言·数据结构·c++
Deschen1 小时前
设计模式-适配器模式
java·设计模式·适配器模式
开发游戏的老王1 小时前
虚幻引擎虚拟制片入门教程 之 模型资源的导入
java·游戏引擎·虚幻