黑马程序员技术交流社区
标题:
问个关于验证QQ号代码的问题
[打印本页]
作者:
kira
时间:
2014-2-14 11:53
标题:
问个关于验证QQ号代码的问题
需求是这样的 验证qq号 币可以0开头 长度5-15位 不能出现数字以外的字符
我在使用正则前是这么写的
public class QQDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String s = "2345";
checkQQ(s);
}
public static void checkQQ(String qq){
int len =qq.length();
if(!(len<=5&&len>=15)){
if(!qq.startsWith("0")){
char[] arr = qq.toCharArray() ;
boolean f = true;
for(char ch:arr){
if(!(ch>='0'&&ch<='9')){
f =false;
break;
}
}
if(f){
System.out.println("qq:"+qq);
}
else{
System.out.println("出现非法字符");
}
}
else{
System.out.println("不可以0开头");
}
}
else{
System.out.println("长度不对");
}
}
}
复制代码
这个我验证了 我的s里面 如果输入0开头 或者其他字符 都成功报错
但是唯独长度验证出了问题 我重写了三遍发现还是不行 求各位高手指正代码错误
作者:
kira
时间:
2014-2-14 12:30
好吧 我自己解决了 逆转了下逻辑反而解决了这个问题
public class QQDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String s = "1112345";
checkQQ(s);
}
public static void checkQQ(String qq){
int len =qq.length();
if(!(len>=5&&len<=15)){//逆转下逻辑 先判断长度
System.out.println("长度不对");
}
else{
if(!qq.startsWith("0")){//再否则
char[] arr = qq.toCharArray() ;
boolean f = true;
for(char ch:arr){
if(!(ch>='0'&&ch<='9')){
f =false;
break;
}
}
if(f){
System.out.println("qq:"+qq);
}
else{
System.out.println("出现非法字符");
}
}
else{
System.out.println("不可以0开头");
}
}
}
}
复制代码
作者:
itpower
时间:
2014-2-14 16:26
这个其实用正则表达式来验证最简单了,何必搞得这么复杂呢?
作者:
kira
时间:
2014-2-14 16:28
itpower 发表于 2014-2-14 16:26
这个其实用正则表达式来验证最简单了,何必搞得这么复杂呢?
不是 我在整理之前的笔记写到博客里而已:lol
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2