Java lastIndexOf 总是 return -1 如果字符是 space 并且设置了 fromIndex
Java lastIndexOf always return -1 if the character is space and fromIndex is set
测试代码
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。怎么可能第一个对第二个错呢?
lastIndexOf()
是从右往左走的,所以当它以索引1(第二个字符,即'e')开始时,没有找到space(有索引5).
最简单的方法
lastIndexOf(int ch, int fromIndex) returns index of ch only if it occurs at or before fromIndex, Otherwise return -1.
System.out.println("Hello World".lastIndexOf(' ', 3));
returns -1.
System.out.println("He llo World".lastIndexOf(' ', 3));
returns 2.
测试代码
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。怎么可能第一个对第二个错呢?
lastIndexOf()
是从右往左走的,所以当它以索引1(第二个字符,即'e')开始时,没有找到space(有索引5).
最简单的方法
lastIndexOf(int ch, int fromIndex) returns index of ch only if it occurs at or before fromIndex, Otherwise return -1.
System.out.println("Hello World".lastIndexOf(' ', 3));
returns -1.
System.out.println("He llo World".lastIndexOf(' ', 3));
returns 2.