为什么我想获取第三个\的位置,可是后面的filePath.indexOf(File.separator)+1这里加1和加2是相同的结果,只有输入加3的时候才能获取到第三个\的位置?

String filePath ="a\\a\\b\\1";
int i =filePath.indexOf(File.separator,filePath.indexOf(File.separator)+1);
System.out.println(i);
System.out.println(filePath.substring(i));

"a\a\b\1" 对应的索引值写成表格就应该如下:

字符 | a | \ | a | \ | b | \ | 1

-|-|-|-|-|-|-|-
索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6

![图片说明](https://img-ask.csdn.net/upload/201911/18/1574069779_577492.png)

根据api说明,你把filePath.indexOf(File.separator)+1的值打印出来对照一下就知道了

具体就是,当filePath.indexOf(File.separator)+1时,你是从索引2的位置开始查找,当filePath.indexOf(File.separator)+2时,你从索引3的位置开始查找,所以查找到的索引都是3