如果给定的字符串包含“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;
}
答案 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