识别A(B(A|AB))*的Java代码
时间: 2023-10-11 08:09:32 浏览: 39
以下是识别 A(B(A|AB))* 的 Java 代码:
```java
public class ABMatcher {
public static boolean matches(String input) {
if (input.length() == 0 || input.charAt(0) != 'A') {
return false;
}
int i = 1;
while (i < input.length()) {
if (input.charAt(i) != 'B') {
return false;
}
i++;
if (i == input.length()) {
return true;
}
if (input.charAt(i) == 'A') {
i++;
} else if (i + 1 < input.length() && input.charAt(i) == 'A' && input.charAt(i + 1) == 'B') {
i += 2;
} else {
return false;
}
}
return true;
}
}
```
代码中的 `matches` 方法接受一个字符串参数,如果该字符串符合 A(B(A|AB))* 的规则,则返回 true,否则返回 false。