用Java语言写一个判断手机号评分系统,越靓号评分越高
时间: 2024-11-09 19:19:35 浏览: 25
在Java中,创建一个简单的手机号评分系统可以使用正则表达式来匹配手机号格式,并结合一些规则来评估号码的“靓号”程度。以下是一个简化的示例:
```java
import java.util.regex.Pattern;
public class PhoneNumberScore {
// 定义手机号格式的正则表达式
private static final String PHONE_NUMBER_PATTERN = "^1[3-9]\\d{9}$";
// 根据规则定义评分函数
public int calculateScore(String phoneNumber) {
Pattern pattern = Pattern.compile(PHONE_NUMBER_PATTERN);
if (!pattern.matcher(phoneNumber).matches()) {
throw new IllegalArgumentException("Invalid phone number format.");
}
// 按照实际需求设定靓号规则
int score = 0;
// 靓号规则示例:前三位为139,最后四位全为奇数得分更高
if ("139".equals(phoneNumber.substring(0, 4)) && isAllOdd(phoneNumber.substring(4))) {
score += 5; // 非常靓号
} else if (isAllOdd(phoneNumber)) {
score += 3; // 靓号
}
return score;
}
// 判断字符串是否全由奇数组成
private boolean isAllOdd(String str) {
for (char c : str.toCharArray()) {
if (Character.isDigit(c) && Character.getNumericValue(c) % 2 == 0) {
return false;
}
}
return true;
}
// 测试靓号评分
public static void main(String[] args) {
System.out.println(calculateScore("13987654321")); // 非常靓号
System.out.println(calculateScore("13787654321")); // 靓号
System.out.println(calculateScore("13512345678")); // 一般
}
}
```
阅读全文