Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javabat子串计数 公共布尔catDog(String str) { 整数计数=0; 对于(int i=0;i_Java_Substring - Fatal编程技术网

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,但是如果您存储了猫和狗之间的差异,您的版本将工作
除此之外,我会使用字符串搜索,而不是检查每个位置,但这可能是你的下一个任务。您选择的方法完全适合CS101类型的家庭作业

如果你能解决我上面提到的问题,那么你的工作就会相当容易。您可能希望尝试的一件事是在代码中的重要位置插入调试语句,例如:

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,但是如果您存储了猫和狗之间的差异,您的版本将工作
除此之外,我会使用字符串搜索,而不是检查每个位置,但这可能是你的下一个任务。您选择的方法完全适合CS101类型的家庭作业

如果你能解决我上面提到的问题,那么你的工作就会相当容易。您可能希望尝试的一件事是在代码中的重要位置插入调试语句,例如:

String sub = str.substring(i, i+1);
就在收盘前