对于某些字符串它可以正常工作,但是由于某种原因,它对后三个字符串不起作用。我看不到输入的字符串类型有什么不同,我希望indx的计算结果为-1,但由于某种原因,它不会出现在最后三个字符串上。我不明白为什么。 编辑:问题解决了。就像你们说的那样,我在循环中使用str的子字符串而不是新闻。抱歉,这么简单的错误,我才刚刚开始编写代码,这些是我需要关注的细节。另外,由于我在codingbat网站上工作,因此没有调试器,但我也强烈建议其他初学者使用该网站。它将为您提供许多示例问题,以开始进行编码。再次感谢。 enter image description here 代码:
public String stringYak(String str) {
int indx = str.indexOf("yak");
String news =str;
for(;indx!=-1;)
{
news = (str.substring(0,indx) + str.substring(indx+3,str.length()));
indx = news.indexOf("yak");
}
return news;
}
答案 0 :(得分:1)
因为循环永不中断。
您正在循环内从str
的{{1}}索引中提取子字符串。
也许您想同时从news
中获取子字符串和索引。