编码Bat Java失败其他测试

时间:2017-03-14 22:05:19

标签: java string

我正在编写关于编码包的基本java问题,而在某个问题上,我的代码未通过"其他测试"。问题是xyzThere,任务是这样的: 如果给定的字符串包含" xyz"的外观,则返回true。其中xyz不是直接在句点(。)之前。所以" xxyz"算了但是" x.xyz"才不是。 这是我的代码:

public boolean xyzThere(String str) {
  boolean hi = false,hi2 = false;
  for(int i = 0;i<str.length()-2;i++){
    if(i==0)
      hi =  (i==0&&str.substring(0,3).equals("xyz"));
    else hi2 = (str.substring(i,i+3).equals("xyz")&&str.charAt(i-1)!='.');
  }

  return hi||hi2;


}

为什么这些测试失败了?

编辑:修改了我的解决方案,因此变量的值不会重置,仍然会导致错误

    public boolean xyzThere(String str) {
  for(int i = 0;i<str.length()-2;i++){
    if(i==0&&str.substring(0,3).equals("xyz"))
      return true;
    else if(str.substring(i,i+3).equals("xyz")&&str.charAt(i-1)!='.');
      return true;
  }
  return false;


}

它为xyzThere(&#34; abc.xyz&#34;),xyzThere(&#34; abcxy&#34;),xyzThere(&#34; .xyz&#34;)返回true,和xyzThere(&#34; 12.xyz&#34;)。

0 个答案:

没有答案