Javabat子串计数 公共布尔catDog(String str) { 整数计数=0; 对于(int i=0;i
这是我的猫狗代码,我已经做了一段时间了,只是找不到哪里出了问题。非常感谢您的帮助*/Javabat子串计数 公共布尔catDog(String str) { 整数计数=0; 对于(int i=0;i,java,substring,Java,Substring,这是我的猫狗代码,我已经做了一段时间了,只是找不到哪里出了问题。非常感谢您的帮助*/ 编辑-如果字符串“cat”和“dog”在给定字符串中出现的次数相同,我希望返回true。一个问题是,这永远不会是真的: public boolean catDog(String str) { int count = 0; for (int i = 0; i < str.length(); i++) { String sub = str.substring(i, i+1);
编辑-如果字符串“cat”和“dog”在给定字符串中出现的次数相同,我希望返回true。一个问题是,这永远不会是真的:
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;
}
&&手段和手段意味着或
然而,另一个问题是,您的代码看起来像是在随机游荡,试图让它工作。每个人在第一节编程课上都会在一定程度上这样做,但这是一个坏习惯。在编写任何代码之前,试着在脑海中勾勒出一幅如何解决问题的清晰画面,然后编写代码,然后验证代码是否确实执行了您认为应该执行的操作,以及您最初的解决方案是否正确
编辑:既然你已经明确了你的函数应该做什么,我说的话就加倍了。您解决问题的方法不正确,因此您需要重新思考如何解决问题,而不是进一步实施 一个问题是,这永远不会是真的:
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;
}
if (sub.equals("cat") && sub.equals("dog"))
&&手段和手段意味着或
然而,另一个问题是,您的代码看起来像是在随机游荡,试图让它工作。每个人在第一节编程课上都会在一定程度上这样做,但这是一个坏习惯。在编写任何代码之前,试着在脑海中勾勒出一幅如何解决问题的清晰画面,然后编写代码,然后验证代码是否确实执行了您认为应该执行的操作,以及您最初的解决方案是否正确
编辑:既然你已经明确了你的函数应该做什么,我说的话就加倍了。您解决问题的方法不正确,因此您需要重新思考如何解决问题,而不是进一步实施
if (sub.equals("cat") && sub.equals("dog"))
上面的一行只得到了一个2字符的子字符串,所以你得到的不是“cat”,而是“ca”,它永远不会匹配。通过将“i+1”更改为“i+2”来修复此问题
编辑:现在,您已经在评论中澄清了您的问题:您应该有两个计数器变量,一个用于计算“狗”和一个用于计算“猫”。然后,如果count\u cats==count\u dogs
,则在末尾返回true
上面的一行只得到了一个2字符的子字符串,所以你得到的不是“cat”,而是“ca”,它永远不会匹配。通过将“i+1”更改为“i+2”来修复此问题
编辑:现在,您已经在评论中澄清了您的问题:您应该有两个计数器变量,一个用于计算“狗”和一个用于计算“猫”。然后在最后返回true,如果
count\u cats==count\u dogs
这里有一个评论,因为我不相信为家庭作业指定代码。但你至少试过哪个比大多数在这里张贴作业的小丑更好
- 您需要两个变量,一个用于存储cat事件,一个用于dog,或者一种区分差异的方法
- 您的子字符串没有获得足够的字符
- 字符串不能同时是猫和狗,您需要单独检查它们并更新正确的计数
- 如果catcount等于dogcount,您的return语句应该返回true,但是如果您存储了猫和狗之间的差异,您的版本将工作
String sub = str.substring(i, i+1);
紧靠for
循环的关闭括号之前。这对于找出代码做错了什么是非常有价值的
这是我的ROT13版本,如果你遇到了太多的麻烦,想和它做比较,但请不要在没有先让你的工作正常的情况下使用它。从长远来看,这对你没有帮助。而且,几乎可以肯定的是,你的教育者正在追踪StackOverflow以发现剽窃行为,所以这在短期内甚至对你没有帮助
我并不在乎,在就业市场上,愚蠢的程序员越多,对我来说就越好:-)
choyvp obbyrna pngQbt(Fgevat fge){
vag qvssrepr=0;
sbe(vag v=0;v
这里有一个批评,因为我不相信给家庭作业编码。但你至少试过哪个比大多数在这里张贴作业的小丑更好
- 您需要两个变量,一个用于存储cat事件,一个用于dog,或者一种区分差异的方法
- 您的子字符串没有获得足够的字符
- 字符串不能同时是猫和狗,您需要单独检查它们并更新正确的计数
- 如果catcount等于dogcount,您的return语句应该返回true,但是如果您存储了猫和狗之间的差异,您的版本将工作
String sub = str.substring(i, i+1);
就在收盘前