【发布时间】:2013-12-05 14:27:07
【问题描述】:
给定一个字符串,“xyz”是否出现在字符串的中间?至 定义中间,我们会说左边的字符数和 “xyz”的右边最多只能相差一个。这个问题比较难 比看起来。
我的解决方案在没有倒数第二行的情况下工作,除了一个条件:if str="xyx" 是否可以修改 for 循环以考虑到这一点......我正在努力理解为什么它没有。
我的解决方案确实有效我只是想更好地了解我在做什么。我知道我可以将它添加到第一个 if 语句中,但我想知道为什么没有它它就无法工作。
public boolean xyzMiddle(String str) {
for (int i=0;i<str.length()-3;i++) {
if (str.substring(i,i+3).equals("xyz")) {
String front =str.substring(0,i);
String end = str.substring(i+3);
int a =Math.abs(front.length() -end.length());
if (a<=1) return true;
}
}
if (str.equals("xyz")) return true;
return false;
【问题讨论】:
-
问题是什么?代码应该做什么?
-
好的,现在你已经合并了一个问题。现在我的问题是,你为什么要使用循环?您已经知道在字符串中查找的位置。
-
问题来自的编码蝙蝠部分是关于使用循环......所以这就是我自动这样做的原因......
-
我认为他们希望您使用循环来检查字符而不是子字符串,而不是查找子字符串的位置。
标签: java