为什么该程序的循环超时?

时间:2018-08-07 00:14:18

标签: java string loops indexof

对于某些字符串它可以正常工作,但是由于某种原因,它对后三个字符串不起作用。我看不到输入的字符串类型有什么不同,我希望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;

}

1 个答案:

答案 0 :(得分:1)

因为循环永不中断。

您正在循环内从str的{​​{1}}索引中提取子字符串。

也许您想同时从news中获取子字符串和索引。