String s = "i am# a boy";
boolean b = s.startsWith("#");
for(int i=0; i < s.length(); i++){
System.out.println(i +" : ["+ s.charAt(i)+"] , " + s.indexOf(s.charAt(i)));
}
System.out.println(s.substring(0, s.indexOf("oy")));
System.out.println(s.substring(0, s.indexOf("o")));
System.out.println(s.substring(0, s.indexOf("a")));
0 : [i] , 0
1 : [ ] , 1
2 : [a] , 2
3 : [m] , 3
4 : [#] , 4
5 : [ ] , 1
6 : [a] , 2
7 : [ ] , 1
8 : [b] , 8
9 : [o] , 9
10 : [y] , 10
i am# a b
i am# a b
i // a出现了两次,s.indexOf 返回第一次的位置
很明显,subString 是前包后不包。