我正在做一些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”长的字符串为假。我花了整整一天的时间来尝试解决这个问题以及另一个类似的问题,所以我很高兴被告知为什么它是错误的。
谢谢。
最佳答案
将您的代码更改为:
for (int i=0;i<str.length()-2;i++) {
if ((str.charAt(i)=='b') && (str.charAt(i+2)=='b')) {// check 1st and 3rd character, 2nd and 4th character etc
return true; }
}
return false;
或者您可以尝试这样的正则表达式:
str.matches(".*b[a-zA-Z]b.*")
关于java - 查找字符串中是否有两个特定字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26116017/