我正在做一些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;
的问题要求返回true,如果给定的字符串(STR)中有“鲍勃”,除了中间人物不需要是“O”。以上代码对于长度符合条件的三个字符的长度为“bob”或“bbb”的三个字符的字符串返回true,但对于比“bobdfgkabcb”更长的字符串则为false。我一整天都在努力解决这个问题和另一个类似的问题,所以我很乐意告诉你为什么错了。
谢谢。
@TheLostMind或第一! – Yann 2014-09-30 08:24:24
你不应该在else块中返回false。这个'else'会在第一次迭代中放弃你的循环。你应该删除它。 – Tom 2014-09-30 08:24:27
这个练习是否被禁止使用正则表达式? – laruiss 2014-09-30 08:31:16