如果字符是空格并且设置了fromIndex,则Java lastIndexOf始终返回-1

时间:2017-06-27 08:58:11

标签: java string lastindexof

测试代码

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。第一个怎么可能是对的,但第二个是错的?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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.