我正在编写一种方法,该方法通过一个字符串,如果找到了恰好两个'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;

09-29 21:41