java Strubg,indexOf("/",0)

来源:百度知道 编辑:UC知道 时间:2024/06/11 13:07:53
例如这样
String s1 = "/Test_Servlet/user/queryUser.do";
s1.indexOf("/",0);
那反回是 0也就是第一个"/"开始的地方
s1.indexOf("/",1)
这样返回13也就是第二个"/"开始的地方

那这样都正常
但是如果
s1.indexOf("/",2)
他还是 13, 不是应该是第三个"/"开始的地方吗??
请教

s1.indexOf("/",x)
返回从s1的第x字母开始第一次出线 "/" 的位置
不是第几次出线的位置

indexOf
public int indexOf(String str,
int fromIndex)从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引。返回的整数是最小值 k,它满足:
k >= Math.min(fromIndex, str.length()) && this.startsWith(str, k)
如果不存在这样的 k 值,则返回 -1。

参数:
str - 要搜索的子字符串。
fromIndex - 开始搜索的索引位置。
返回:
从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引。

这是中文JDK解释,你看了估计就明白了,

其实你试一试s1.indexOf("/",14) 得到18
即:14索引位置开始,就是字母u,第一次出现“/”的位置索引就是18了
你所给的字符串中“/”的索引位置是0 13 18就3个位置,要么返回其中的一个索引位置,要么就返回-1(找不到了)。