检验QQ号是否符合,如果符合返回true,否则false 规则:不能以0开头且长度在6-20之间,不能有出数字之外的字符
下面采用两种方法
//方法一:自己写规则,首先QQ号不能为null,不能用0开头,且长度在6-20之间
public static boolean qq(String qqnumber){//写一个方法,传入一个字符串形式的QQ号
if(qqnumber == null || qqnumber.startsWith("0") ||//判断是否为空,以0开头(用的是startsWith方法),长度的判断
qqnumber.length()<6||qqnumber.length()>20){
return false;//如果不符合返回false
}
for (int i = 0; i < qqnumber.length() ; i++) {//通过for循环看字符串中是否有非数字的字符采用了charAt方法
char c = qqnumber.charAt(i);
if(c < '0' || c > '9' ){//如果字符大于9或者小于0,返回false
return false;
}
}
return true;//均满足返回true
}
这种方法考虑的情况比较多再看下一种方法:
//方法二:采用正则表达式
public static boolean qq1(String qqnumber){//判断是否为空,并且采用的方法是matches,后面的规则是[1-9]任意一个\\d是任意数字
//长度除过第一位{5,19},表示6-20
return qqnumber != null && qqnumber.matches("[1-9]\\d{5,19}");
}
完整代码及测试:
public class Check01Test {
public static void main(String[] args) {
System.out.println(qq("2301"));
System.out.println(qq("1523463214"));
System.out.println(qq("048512326465"));
System.out.println(qq("sc2102cdac4ds"));
System.out.println("=================================");
System.out.println(qq1("2301"));
System.out.println(qq1("1523463214"));
System.out.println(qq1("048512326465"));
System.out.println(qq1("sc2102cdac4ds"));
}
//方法一:自己写规则,首先QQ号不能为null,不能用0开头,且长度在6-20之间
public static boolean qq(String qqnumber){//写一个方法,传入一个字符串形式的QQ号
if(qqnumber == null || qqnumber.startsWith("0") ||//判断是否为空,以0开头(用的是startsWith方法),长度的判断
qqnumber.length()<6||qqnumber.length()>20){
return false;//如果不符合返回false
}
for (int i = 0; i < qqnumber.length() ; i++) {//通过for循环看字符串中是否有非数字的字符采用了charAt方法
char c = qqnumber.charAt(i);
if(c < '0' || c > '9' ){//如果字符大于9或者小于0,返回false
return false;
}
}
return true;//均满足返回true
}
//方法二:采用正则表达式
public static boolean qq1(String qqnumber){//判断是否为空,并且采用的方法是matches,后面的规则是[1-9]任意一个\\d是任意数字
//长度除过第一位{5,19},表示6-20
return qqnumber != null && qqnumber.matches("[1-9]\\d{5,19}");
}
}
运行结果: