【发布时间】:2014-11-24 19:08:15
【问题描述】:
我正在做一些 java 练习,但我不明白为什么答案不是这个。
for (int i=0;i<str.length()-2;i++) {
if ((str.charAt(i)=='b') && (str.charAt(i+2)=='b')) {
return true; }
else return false;
}
return false;
如果给定的字符串(str)中包含“bob”,则该问题要求返回 true,但中间字符不需要是“o”。上面的代码对三个字符的字符串返回 true 满足条件的长度,如“bob”或“bbb”,但对于长度超过该条件的字符串为假,即“bobdfgkabcb”。我确实花了一整天的时间试图解决这个和另一个类似的问题,所以我很感激被告知为什么它错了。
谢谢。
【问题讨论】:
-
@TheLostMind 或第一个!
-
而且你不应该在 else 块中返回 false。这个
else将在第一次迭代中中止你的循环。你应该删除它。 -
这个练习禁止使用正则表达式吗?
-
啊,谢谢!我知道对于知道的人来说,这将是一件愚蠢而明显的事情。另外我不认为正则表达式是被禁止的,但如果我搞砸了,我应该再练习一下这个级别的东西:) 谢谢@TheLostMind 等人。
-
如果第一个
str.charAt(i+2)=='b'是真的,你会希望第二个str.charAt(i+2)=='b'也是真的。
标签: java string char substring