Java String类LastIndex在指定起始位置时,会越界比较。测试用例:
@Test
public void testLastIndex(){
String istr = "abcAbcABCabCaBcAbCaBCabc";
//从位置4开始,从后往前,找出"bc"第一次出现的位置 ,运行结果是4,说明越界匹配,会包含index后面的字符
System.out.printf("%-30s = %d\n", "istr.lastIndexOf(\"bc\", 4)", istr.lastIndexOf("bc", 4));
//如果改成这样,就是1
System.out.printf("%-30s = %d\n", "istr.lastIndexOf(\"bc\", 4)", istr.substring(0, 4).lastIndexOf("bc", 4));
}