public boolean catDog(String str)
{
int count = 0;
for (int i = 0; i < str.length(); i++)
{
String sub = str.substring(i, i+1);
if (sub.equals("cat") && sub.equals("dog"))
count++;
}
return count == 0;
}
这是我的 catDog 代码,已经研究了一段时间,就是找不到问题所在。非常感谢您的帮助!*/
编辑- 如果字符串“cat”和“dog”在给定字符串中出现的次数相同,我想返回 true。
最佳答案
一个问题是这永远不会是真的:
if (sub.equals("cat") && sub.equals("dog"))
&& 表示和。 ||意思是或。
但是,另一个问题是您的代码看起来像是在随机地四处乱窜,试图让它工作。每个人在他们的第一堂编程课上都会在某种程度上这样做,但这是一个坏习惯。在编写任何代码之前,尝试在脑海中想出如何解决问题的清晰画面,然后编写代码,然后验证代码是否确实按照您的想法执行,并且您的初始解决方案是正确的。
编辑:既然您已经阐明了您的函数应该执行的操作,那么我所说的就变得更加重要了。你解决问题的方法不对,所以你需要重新思考如何解决问题,而不是胡乱执行。
关于Javabat子串计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/766611/