【发布时间】:2017-06-27 08:58:10
【问题描述】:
测试代码
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。怎么可能第一个是对的,第二个是错的?
【问题讨论】:
-
Checkout 文档:@return 在此对象表示的 * 字符序列中最后一次出现的字符的索引,该字符小于或等于 {@code fromIndex} 或 {@code - 1} * 如果字符在该点之前没有出现。
-
来自 javadoc :“如果在此字符串 在或之前位置 fromIndex 中没有出现此类字符,则返回 -1。” .
-
谢谢各位。我知道没有找到-1,但我没有注意到从右到左。名为 fromIndex 的变量让我感到困惑,我假设它搜索从 fromIndex 开始的子字符串。
标签: java string lastindexof