前端之家收集整理的这篇文章主要介绍了
三种方法校验QQ号码,正则表达式代码最好,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
/**
* 分别用String类方法和正则表达式校验QQ号码是否合法
* QQ号码要求:
* 6-10位,必须是数字、开头不能为0
* @author yajun
*
*/
public class QQCheck {
String[] qqNums=new String[5];
/**
* 组合字符串方法来校验QQ号码的合法性
*/
private String checkQQ1(String qqNum){
String message = null;
char[] chArr;
boolean flag=true;
if(qqNum.length()>=6&&qqNum.length()<=10){
chArr=qqNum.tocharArray();
for(char ch:chArr){
//如果发现非法字符,则将flag置为flase,退出循环
//if(!(ch>=0&&ch<=9)){//!!!Error,这句话是错误的!!!
if(!(ch>='0'&&ch<='9')){//疑问:用不用加括号呢?!运算符的优先级如何??加括号会不会影响效率呢??
flag=false;
break;
}
}
if(flag){
if(!qqNum.startsWith("0")){
message=qqNum+":QQ号码合法";
}else{
message=qqNum+":QQ号码以零开头不合法";
}
}else{
message=qqNum+":QQ号码有非法字符不合法";
}
}else{
message=qqNum+":QQ号码过长或过短不合法";
}
return message;
}
@Test
public void testCheckQQ1() {
for(String qqNum:qqNums){
System.out.println(checkQQ1(qqNum));
}
}
/**
* 用Long.parseLong方法校验QQ号码是否有非法字符
*/
private String checkQQ2(String qqNum){
String message = null;
if(qqNum.length()>=6&&qqNum.length()<=10){
try{
Long.parseLong(qqNum);//parseLong与valueOf有什么区别呢?
if(!qqNum.startsWith("0")){
message=qqNum+":QQ号码合法";
}else{
message=qqNum+":QQ号码以零开头不合法";
}
}catch(NumberFormatException e){
message=qqNum+":QQ号码有非法字符不合法";
}
}else{
message=qqNum+":QQ号码过长或过短不合法";
}
return message;
}
@Test
public void testCheckQQ2() {
for(String qqNum:qqNums){
System.out.println(checkQQ2(qqNum));
}
}
@Before
public void init(){
String rightQQ="380970008";
String tooLongQQ="12345678912";
String tooShortQQ="12345";
String containIllegal="123ab56";
String startWithZero="0123456";
qqNums[0]=rightQQ;
qqNums[1]=tooLongQQ;
qqNums[2]=tooShortQQ;
qqNums[3]=containIllegal;
qqNums[4]=startWithZero;
//qqNums={rightQQ,tooLongQQ,tooShortQQ,containIllegal,startWithZero};//这句话会出错,用{}赋值的字符串数组是常量数组
}
@Test
public void testInt() {
System.out.println((int)(Math.pow(2,31)-1));
}
}