java indexOf()方法

publicclassTest{publicstaticvoidmain(String[]args){Stringname="aaloveddlovecclove";in... public class Test
{
public static void main(String[] args)
{
String name="aaloveddlovecclove";
int n=name.indexOf("love",3);
System.out.println(n);
}
};
请教一下,上面为什么输出结果是8,帮忙解释下原因
展开
 我来答
a30501139
2009-05-19 · TA获得超过172个赞
知道小有建树答主
回答量:523
采纳率:0%
帮助的人:253万
展开全部
意思是从name的第3个位置开始,第一次出现"love"的位置
(相当于" oveddlovecclove"中第一次出现"love"的位置)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
最爱山顶巨人
2009-05-18 · TA获得超过279个赞
知道小有建树答主
回答量:410
采纳率:0%
帮助的人:323万
展开全部
简单的说,love当成一个字符了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
锺离爱景泰水
2019-08-13 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:30%
帮助的人:713万
展开全部
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",各个字符直接各部相同就无所谓了
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式