Java中的lastIndexOf函数的fromIndex参数
首先是一段测试代码,在后面有详细的解释
public class LastIndexOfTest {
public static void main(String[] args) {
String s = "a ab abc abcd";
System.out.println(s.lastIndexOf("a"));
System.out.println(s.lastIndexOf('a'));
System.out.println(s.lastIndexOf(97));
System.out.println(s.lastIndexOf("a", 4));
}
}
输出:
9
9
9
2
首先看一下官方的文档:
一共是有四个方法:
- lastIndexOf(int ch)
- lastIndexOf(int ch, int fromIndex)
- lastIndexOf(String str)
- lastIndexOf(String str, int fromIndex)
返回值都为要查找对象的索引,若不存在则返回-1(下图中也有解释)。
其实总结一下,可以理解为两个参数,第一个是要查找的对象,可以是char型(也可以用int型,参考java中int与char的关系),也可以是String类型。
第二个是搜索的起始位置,官方给的解释是
这个参数一开始还是有疑惑的,但是经过测试,认为这个参数可以理解为其用处为使函数返回:“从字符串开始到fromIndex,最后一个子字符串出现的位置的索引”,而这个容易引起歧义的"from"的实际含义是从这个位置开始倒着找(当然输出的索引还是正向的,即从字符串开始位置的0开始算起的)。