java中查找字符索引主要用indexof()和lastindexof()方法,前者返回首次出现位置,后者返回末次出现位置,均从0开始计数,未找到返回-1。

Java 中查找字符串中指定字符的索引位置,主要用 String 类提供的 indexOf() 和 lastIndexOf() 方法,它们返回第一次或最后一次出现的索引(从 0 开始),没找到则返回 -1。
使用 indexOf() 查找第一个匹配位置
这是最常用的方式,适用于查找某个字符首次出现的位置。
-
str.indexOf('a'):查找字符'a'在字符串str中第一次出现的索引 -
str.indexOf('a', fromIndex):从指定位置fromIndex开始向后查找 - 注意:字符要用单引号,如
'x';若传入字符串(双引号),会调用重载的字符串查找方法
使用 lastIndexOf() 查找最后一个匹配位置
当需要定位末次出现的位置时使用,逻辑与 indexOf() 对称。
-
str.lastIndexOf('e')返回最后一个'e'的索引 -
str.lastIndexOf('e', fromIndex)表示从fromIndex位置往前搜索(含该位置) - 例如:
"hello".lastIndexOf('l', 2)返回 2(因为只查索引 0~2 范围,'l'在索引 2 处)
区分大小写与空字符串处理
这些方法默认区分大小写,且对空字符串有明确定义:
-
"Abc".indexOf('b')返回 1,"Abc".indexOf('B')返回 -1(大小写敏感) -
"".indexOf('x')返回 -1;"a".indexOf('a')返回 0 - 传入 null 会抛出
NullPointerException,使用前建议判空
遍历查找所有匹配位置(多次出现时)
如果要找出字符在字符串中所有出现的位置,可结合循环和 indexOf() 实现:
- 从索引 0 开始查找,每次找到后从下一个位置继续搜
- 示例:int idx = -1; while ((idx = str.indexOf('o', idx + 1)) != -1) { System.out.println(idx); }
- 避免死循环的关键是每次更新起始位置为
idx + 1
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











