java 如何写一个AA-AZ BA-BZ CA-CZ以此类推的字符串校验代码
时间: 2024-09-20 08:03:34 浏览: 37
在Java中,编写一个验证字符串是否按照"AA-AZ"到"CA-CZ"这种顺序递增规则的代码,你可以使用正则表达式和循环来检查字符序列。这里是一个简单的示例:
```java
import java.util.regex.Pattern;
public class StringValidator {
private static final Pattern pattern = Pattern.compile("^[A-Z]{2}-[A-Z]{2}$");
public boolean isValidString(String input) {
if (input == null || input.isEmpty()) {
return false;
}
// 使用Pattern匹配并捕获异常
try {
pattern.matcher(input).matches();
} catch (IllegalArgumentException e) {
return false;
}
// 检查字母是否连续递增
int start = input.charAt(0) - 'A';
for (int i = 1; i < input.length(); i++) {
char currentChar = input.charAt(i);
char nextChar = input.charAt(i + 1);
int nextStart = nextChar - 'A';
if (start != nextStart || currentChar > nextChar) {
return false;
}
start = nextStart;
}
// 如果所有检查都通过,返回true
return true;
}
public static void main(String[] args) {
System.out.println(isValidString("AA-AZ")); // 输出:true
System.out.println(isValidString("BA-BZ")); // 输出:true
System.out.println(isValidString("CA-CZ")); // 输出:true
System.out.println(isValidString("AB-CD")); // 输出:false,因为不是按顺序递增
}
}
```
这个代码首先创建了一个正则表达式模式,然后检查输入字符串是否符合该模式。接着,它遍历字符串,确保每个连续的两字母部分是递增的。如果满足条件,则返回`true`,否则返回`false`。
阅读全文