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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wangkai 中级黑马   /  2015-5-31 19:19  /  294 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

对QQ号码进行校验。
要求:5~15 0不能开头,只能是数字。

这种方式,是使用了String类中的方法,进行组合完成了需求,但是代码过于复杂。
*/

public static void checkQQ_1()
{
  String qq = "1238a9";

  int len = qq.length();

  if(len>=5 && len<=15)
  {   
   if(!qq.startsWith("0"))
   {
    try
    {
     long l = Long.parseLong(qq);
     System.out.println("qq:"+l);
    }
    catch (NumberFormatException e)
    {
     System.out.println("出现非法字符....");
    }

    /*
    char[] arr = qq.toCharArray();
    boolean flag = true;
    for(int x=0; x<arr.length; x++)
    {
     if(!(arr[x]>='0' && arr[x]<='9'))
     {
      flag = false;
      break;
     }     
    }
    if(flag)
    {
     System.out.println("qq:"+qq);
    }
    else
    {
     System.out.println("出现非法字符");
    }
    */
   }
   else
   {
    System.out.println("不能以0开头");
   }
  }
  else
  {
   System.out.println("长度错误");
  }
}
}


正则表达式的第四个功能:
4,获取:将字符串中符合规则的子串取出。

操作步骤:
(1) 将正则表达式封装成对象。
(2) 让正则对象和要操作的字符串相关联。
(3) 关联后,获取正则匹配引擎。
(4) 通过引擎对符合规则的子串进行操作,比如取出。

import java.util.regex.*;
class RegexDemo2
{
public static void main(String[] args)
{
  getDemo();
}

public static void getDemo()
{
  String str = "ming tian jiu yao fang jia le , da jia";
  
  String reg = "\\b[a-z]{3}\\b";

  //将规则封装成对象。
  Pattern p = Pattern.compile(reg);

  //让正则对象和要作用的字符串相关联。获取匹配器对象。
  Matcher m = p.matcher(str);

  //System.out.println(m.matches());
  //其实String类中的matches方法,用的就是Pattern和Matcher对象来完成的。
  //只不过被String的方法封装后,用起来较为简单,但是功能却单一。
  

  //boolean b = m.find();//将规则作用到字符串上,并进行符号规则的子串查找。
  //System.out.println(b);
  //System.out.println(m.group());//用于获取匹配后的结果。
  
  //System.out.println("matches:"+m.matches());
  while(m.find())
  {
   System.out.println(m.group());
   System.out.println(m.start()+"...."+m.end());
  }
}
}

练习

import java.util.*;
class RegexTest
{
public static void main(String[] args)
{
  checkMail();
}


//需求:对邮件地址进行校验。

public static void checkMail()
{
  String mail = "abc12@sina.com";
  
  mail = "1@1.1";

  String reg = "[a-zA-Z0-9_]+@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+";//较为精确的匹配。
  reg = "\\w+@\\w+(\\.\\w+)+";//相对不太精确的匹配。

  //mail.indexOf("@")!=-1;

  System.out.println(mail.matches(reg));
}

/*

2 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
还没学到这,保存 等学完了在看遍
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马