java中switch case判断身份证省份
时间: 2024-10-14 12:04:37 浏览: 29
在Java中,你可以使用`switch`语句结合字符串比较来判断身份证号码的省份信息。中国的身份证号码前6位对应不同的省份和地区。例如:
```java
public enum Province {
// 省份对应的代码
SH("3100", "上海"),
JS("3200", "江苏"),
ZJ("3300", "浙江");
private String code;
private String name;
Province(String code, String name) {
this.code = code;
this.name = name;
}
public static String getProvinceFromID(String idCard) {
if (idCard.length() != 18 || !idCard.matches("\\d{15}(\\d|X|x)")) {
throw new IllegalArgumentException("Invalid ID card number");
}
int firstSix = Integer.parseInt(idCard.substring(0, 6));
switch (firstSix) {
case Province.SH.getCode():
return Province.SH.getName();
case Province.JS.getCode():
return Province.JS.getName();
// ...添加其他省份的情况
default:
return "未知";
}
}
}
// 示例
String idCard = "310101199001011234"; // 上海的身份证
System.out.println(Province.getProvinceFromID(idCard)); // 输出:上海
```
在这个例子中,我们创建了一个枚举(`Province`),其中包含每个省份的代码和名称。然后通过身份证的前六位数字查找匹配的省份。
阅读全文