Java里,关于indexOf
发布网友
发布时间:2022-05-26 16:46
我来回答
共2个回答
热心网友
时间:2023-10-29 06:41
1)索引可以理解为位数,只是在这里它不是从1开始计数,而是从零开始。
2)String str1 = "abcabasiouabvcaisoabcaaabc";
每个字符的索引 0123456789...
3)index = str1.indexOf(str2);//找到str2在str1中第一次出现的位置,可以看到对应的索引为0.
while(-1!= index)//只要str1还包含str2就继续搜索,直至结束
{
i++;//每搜索到一次,次数加1
index = str1.indexOf(str2,index+str2.length());//从index+str2.length() 位置开始继续搜索
//可以看到index是上一次搜索到的位置,str2.length()是str2的长度
//即 第2次是 从(第1次的索引+3)位置开始搜索,第3次是 从(第2次的索引+3)位置开始搜索
//直到找到索引终止的地方
//其实这里搜索的位置不应该用index+str2.length()),而应该使用index+1
//不然如果类似str1="aaaab",而str2="aa"这样 str2有连续相同的字符,就很可能遗漏
//当然这里str2="abc",各个字符直接各部相同就无所谓了
}
热心网友
时间:2023-10-29 06:41
也就是子字符串在父字符串中出现的位置