A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© kira 中级黑马   /  2014-2-14 11:53  /  915 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

需求是这样的 验证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开头 或者其他字符 都成功报错
但是唯独长度验证出了问题 我重写了三遍发现还是不行 求各位高手指正代码错误

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

3 个回复

倒序浏览
好吧 我自己解决了 逆转了下逻辑反而解决了这个问题
  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
这个其实用正则表达式来验证最简单了,何必搞得这么复杂呢?

不是 我在整理之前的笔记写到博客里而已:lol
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马