CodingBat xyzThere

时间:2014-09-10 02:34:41

标签: java

  

如果给定的字符串包含“xyz”的外观,则返回true,其中xyz不直接以句点(。)开头。所以“xxyz”计算但“x.xyz”没有。

我正在尝试这个问题而且似乎无法找到为什么“abc.xyzxyz”仍然返回false

public boolean xyzThere(String str) {
   if(str.contains("xyz")) {
      int xyz = str.indexOf("xyz");
      if(xyz!=0 && str.substring(xyz-1,xyz).equals(".")) {
         return false;
      }
      return true;
   }
   return false;  
}

3 个答案:

答案 0 :(得分:1)

它返回false,因为此语句if(xyz!=0 && str.substring(xyz-1,xyz).equals(".")) {为真。

xyz是4,str.substring(3, 4)是“。”

答案 1 :(得分:0)

在python中,以下代码将起作用:

def xyz_there(str):
 if len(str) < 3:
  return False
 for i in range(len(str)):
  if str[i-1]!= '.':
   if str[i:i+3]=='xyz' :
    return True
 else:
  return False

答案 2 :(得分:0)

使用while循环的python答案:

def xyz_there(str):

  i = 0
  while i < len(str): 

    if str[i - 1] != '.':
      if str[i : i + 3] == "xyz":
        return True
    i += 1
  else:
    return False