手机号码实现注册的业务逻辑代码
具体需求在代码中有体现
业务代码如下:
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 用户手机号注册校验
*
* @author Ahualy
*
* 该代码逻辑独立完成
*
*/
public class PhoneNum {
private static List<String> effectivemobilenumber = new ArrayList<>(); //首先创建一个列表,将有效的手机号码进行存储
public static void main(String[] args) {
// TODO 通过此手机号注册成功
String phoneNum1 = "138 1234 1234";
// TODO 通过本手机号无法注册,提示为非法手机号
String phoneNum2 = "13812345abc";
// TODO 通过此手机号注册成功
String phoneNum3 = "13812345678";
// TODO 提示此手机号已经被其他用户注册
String phoneNum4 = "138 1234 5678";
// TODO 此手机号码为中国大陆非法手机号码
String phoneNum5 = "98765432101";
int i = 10; // 测试次数
Scanner scanner = new Scanner(System.in);
while(i>0) {
String phoneNum = scanner.nextLine();
System.out.println(isMobileNO(phoneNum));
i--;
}
scanner.close();
}
//业务代码方法编写
public static String isMobileNO(String mobiles) {
//1.对字符串进行处理,去掉字符串中的所有空格
mobiles = mobiles.replaceAll(" ","");
for (int i = mobiles.length(); --i >=0;) {
if (!Character.isDigit(mobiles.charAt(i))) { // 2.判断输入的手机号是否含有出数字以外的字符
return "通过本手机号无法注册,此手机号为非法手机号";
} else { // 3.判断该手机号码是否是大陆手机号码
Pattern p = Pattern.compile("^((13[0-9])|(15[^4,\\D])|(18[0-9]))\\d{8}$");
Matcher m = p.matcher(mobiles);
if (m.matches()) { //4.程序执行到这里说明手机号码有效
if (effectivemobilenumber.contains(mobiles)) { // 5.判断手机号码是否已经被注册
return "此手机号已经被其他用户注册";
} else {
effectivemobilenumber.add(mobiles); // 6.没有注册就将手机号码存入List集合
for (String string : effectivemobilenumber) {
System.out.println(string);
}
return mobiles+"手机号码注册成功";
}
}else {
return "此手机号码为中国大陆非法手机号码";
}
}
}
return "";
}
}
声明
原创作品,未经授权,严谨转载
如果觉得对你有帮助,我就没白写,如果需要交流,可以留言,或者加我wx
