我正在编写一种方法,该方法通过一个字符串,如果找到了恰好两个'a'字符,则返回true。显然,并非所有条件都得到满足,但是我找不到解决方法。问题指出必须满足布尔类型。但是,在循环内部,如果在一次迭代中未找到a,则不会发生任何事情。我该如何解决?
import java.util.*;
import static java.lang.System.out;
public static void main(String[] args) {
}
public static boolean hasTwoA(String s) {
int aCounter = 0;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == 'a') {
aCounter++;
} else if (aCounter == 2) {
return true;
} else if (i == s.length() - 1 && aCounter != 2) {
return false;
}
}
}
}
最佳答案
像这样写会更整洁:
int aCounter = 0;
for (int i = 0; i < s.length() && aCounter <= 2; ++i) {
if (s.charAt(i) == 'a') ++aCounter;
}
return aCounter == 2;