1

测试代码

public class HelloWorld{
     public static void main(String []args){
        System.out.println("Hello World".lastIndexOf(' '));
        System.out.println("Hello World".lastIndexOf(' ', 1));
        System.out.println("Hello World".lastIndexOf('e'));
        System.out.println("Hello World".lastIndexOf('e', 1));
     }
}

结果

5
-1
1
1

我预计第二个结果是 5,但它是 -1。怎么可能第一个是对的,第二个是错的?

4

2 回答 2

2

lastIndexOf()从右到左,所以当它从索引 1(第二个字符,即 'e')开始时,它没有找到空格(索引为 5)。

于 2017-06-27T09:00:25.947 回答
2

最简单的方法

lastIndexOf(int ch, int fromIndex) 仅当它出现在 fromIndex 或之前返回 ch 的索引,否则返回 -1。

System.out.println("Hello World".lastIndexOf(' ', 3));

返回 -1。

System.out.println("He llo World".lastIndexOf(' ', 3));

返回 2。

于 2017-06-27T09:08:00.450 回答