12. String类中的indexOf()和lastIndexOf()方法的区别是什么?
大约 2 分钟
String
类中的indexOf()
和lastIndexOf()
方法都是用于查找子字符串或字符在字符串中出现的位置,但它们的功能略有不同:
1. indexOf()
方法
功能: 返回指定字符或子字符串在字符串中第一次出现的索引(位置)。
返回值: 如果找到匹配项,返回它的起始索引;如果未找到,返回
-1
。重载方法
:
int indexOf(int ch)
: 查找指定字符ch
第一次出现的位置。int indexOf(String str)
: 查找指定子字符串str
第一次出现的位置。int indexOf(int ch, int fromIndex)
: 从fromIndex
位置开始查找指定字符ch
第一次出现的位置。int indexOf(String str, int fromIndex)
: 从fromIndex
位置开始查找指定子字符串str
第一次出现的位置。
2. lastIndexOf()
方法
功能: 返回指定字符或子字符串在字符串中最后一次出现的索引(位置)。
返回值: 如果找到匹配项,返回它的起始索引;如果未找到,返回
-1
。重载方法
:
int lastIndexOf(int ch)
: 查找指定字符ch
最后一次出现的位置。int lastIndexOf(String str)
: 查找指定子字符串str
最后一次出现的位置。int lastIndexOf(int ch, int fromIndex)
: 从fromIndex
位置向前查找指定字符ch
最后一次出现的位置。int lastIndexOf(String str, int fromIndex)
: 从fromIndex
位置向前查找指定子字符串str
最后一次出现的位置。
示例代码
public class StringIndexOfExample {
public static void main(String[] args) {
String text = "Hello World, Hello Java";
// 使用 indexOf 查找 "Hello" 第一次出现的位置
int firstIndex = text.indexOf("Hello");
System.out.println("First 'Hello' at: " + firstIndex); // 输出: 0
// 使用 lastIndexOf 查找 "Hello" 最后一次出现的位置
int lastIndex = text.lastIndexOf("Hello");
System.out.println("Last 'Hello' at: " + lastIndex); // 输出: 13
// 使用 indexOf 查找 'o' 第一次出现的位置
int firstOIndex = text.indexOf('o');
System.out.println("First 'o' at: " + firstOIndex); // 输出: 4
// 使用 lastIndexOf 查找 'o' 最后一次出现的位置
int lastOIndex = text.lastIndexOf('o');
System.out.println("Last 'o' at: " + lastOIndex); // 输出: 16
}
}
输出结果
First 'Hello' at: 0
Last 'Hello' at: 13
First 'o' at: 4
Last 'o' at: 16
区别总结
indexOf()
: 从字符串的开头开始搜索,返回字符或子字符串第一次出现的索引。lastIndexOf()
: 从字符串的末尾向前搜索,返回字符或子字符串最后一次出现的索引。
这两个方法非常有用,可以根据需要查找字符串中特定字符或子字符串的位置。例如,indexOf()
可以用于查找字符串中子字符串的起始位置,而lastIndexOf()
则可以用于查找子字符串最后一次出现的位置。