一、字符串是否为合法的手机号码
/**
* 利用正则表达式检查字符串是否为合法的手机号码
* @param phone
* @return
*/
public static String isPhone(String phone) {
// 开头的"1"代表第一位为数字1,"[3-9]"代表第二位可以为3、4、5、6、7、8、9其中之一,"\\d{9}"代表后面是9位数字
String regex = "1[3-9]\\d{9}";
// 字符串变量的matches方法返回正则表达式对该串的检验结果,true表示符合字符串规则,false表示不符合规则
if(phone.matches(regex)){
return "手机号正确";
}else{
return "手机号错误";
}
}
二、数组内容是否为合法的手机号码
/**
* 利用正则表达式检查数组内容是否为合法的手机号码
* @param phone
* @return
*/
public static String[] isPhones(String[] phone) {
ArrayList<String> errorPhone = new ArrayList<String>();
// 开头的"1"代表第一位为数字1,"[3-9]"代表第二位可以为3、4、5、6、7、8、9其中之一,"\\d{9}"代表后面是9位数字
String regex = "1[3-9]\\d{9}";
for (int i = 0; i < phone.length; i++) {
// 字符串变量的matches方法返回正则表达式对该串的检验结果,true表示符合字符串规则,false表示不符合规则 index为标记
int index = 0;
if(!phone[i].matches(regex)){
errorPhone.add(phone[i]);
}
}
//类型转换ArrayList-》String数组后返回
return errorPhone.toArray(new String[errorPhone.size()]);
}
三、字符串内容是否为合法的固话号码
/**
* 利用正则表达式检查字符串是否为合法的固话号码
* @param fixed_phone
* @return
*/
public static String isFixedPhone(String fixed_phone) {
//校验规则字段
String regex = null;
//不带区号固话位数
int number = 9;
if(fixed_phone.length() > number ){
//带区号校验规则
regex = "^[0][1-9]{2,3}-[0-9]{5,10}$";
}else{
//不带区号校验规则
regex = "^[1-9]{1}[0-9]{5,8}$";
}
// 字符串变量的matches方法返回正则表达式对该串的检验结果,true表示符合字符串规则,false表示不符合规则
if(fixed_phone.matches(regex)){
return "固话格式正确";
}else{
return "固话格式错误";
}
}
四、方法调用
import java.util.ArrayList;
import java.util.Arrays;
public class PhoneVerification {
public static void main(String[] args) {
//字符串校验
String phone1 = "15548653698";
//返回结果
String result1 = PhoneVerification.isPhone(phone1);
System.out.println(phone1+result1);
//字符串校验
String phone2 = "11111111111";
//返回结果
String result2 = PhoneVerification.isPhone(phone2);
System.out.println(phone2+result2);
//数组校验
String[] phones = {"15548653698","111111111","2222222222","13888455698"};
//返回数组
String[] results = PhoneVerification.isPhones(phones);
System.out.println("无效手机号:"+ Arrays.toString(results));
//固话校验
String phone3 = "0848-6208815";
//返回结果
String result3 = PhoneVerification.isFixedPhone(phone3);
System.out.println(phone3+result3);
}
}
五、控制台输出