黑马程序员技术交流社区

标题: 问个关于验证QQ号代码的问题 [打印本页]

作者: kira    时间: 2014-2-14 11:53
标题: 问个关于验证QQ号代码的问题
需求是这样的 验证qq号 币可以0开头 长度5-15位 不能出现数字以外的字符
我在使用正则前是这么写的
  1. public class QQDemo {

  2.         /**
  3.          * @param args
  4.          */
  5.         public static void main(String[] args) {
  6.                 // TODO Auto-generated method stub
  7.                                 String s = "2345";
  8.                                 checkQQ(s);
  9.                
  10.         }
  11.         public static void checkQQ(String qq){
  12.           
  13.                 int len =qq.length();
  14.                 if(!(len<=5&&len>=15)){
  15.                         if(!qq.startsWith("0")){
  16.                        
  17.                        char[] arr = qq.toCharArray() ;
  18.                        boolean f = true;
  19.                        for(char ch:arr){
  20.                               
  21.                                if(!(ch>='0'&&ch<='9')){
  22.                                                f =false;
  23.                                                break;
  24.                                                }
  25.                        }
  26.                        if(f){
  27.                               
  28.                                System.out.println("qq:"+qq);
  29.                        }
  30.                        else{
  31.                               
  32.                                System.out.println("出现非法字符");
  33.                        }
  34.                                
  35.                         }
  36.                         else{
  37.                                
  38.                                 System.out.println("不可以0开头");
  39.                         }
  40.                 }
  41.                
  42.                 else{
  43.                         System.out.println("长度不对");
  44.                         }
  45.                        
  46.                        
  47.                        
  48.                 }
  49.                
  50.                
  51.                
  52.                
  53.        

  54. }
复制代码

这个我验证了 我的s里面 如果输入0开头 或者其他字符 都成功报错
但是唯独长度验证出了问题 我重写了三遍发现还是不行 求各位高手指正代码错误

作者: kira    时间: 2014-2-14 12:30
好吧 我自己解决了 逆转了下逻辑反而解决了这个问题
  1. public class QQDemo {

  2.         /**
  3.          * @param args
  4.          */
  5.         public static void main(String[] args) {
  6.                 // TODO Auto-generated method stub
  7.                                 String s = "1112345";
  8.                                 checkQQ(s);
  9.                
  10.         }
  11.         public static void checkQQ(String qq){
  12.           
  13.                 int len =qq.length();
  14.                 if(!(len>=5&&len<=15)){//逆转下逻辑 先判断长度
  15.                         System.out.println("长度不对");
  16.                 }
  17.         else{
  18.                
  19.                 if(!qq.startsWith("0")){//再否则
  20.                        
  21.             char[] arr = qq.toCharArray() ;
  22.             boolean f = true;
  23.             for(char ch:arr){
  24.                    
  25.                     if(!(ch>='0'&&ch<='9')){
  26.                                     f =false;
  27.                                     break;
  28.                                     }
  29.                 
  30.             }
  31.             if(f){
  32.                    
  33.                     System.out.println("qq:"+qq);
  34.             }
  35.             else{
  36.                    
  37.                     System.out.println("出现非法字符");
  38.             }
  39.          
  40.                
  41.         }
  42.         else{
  43.                
  44.                 System.out.println("不可以0开头");
  45.         }
  46.                         }
  47.                        
  48.                        
  49.                        
  50.                 }
  51.                
  52.                
  53.                
  54.                
  55.        

  56. }
复制代码

作者: 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