【黑马程序员】java基础_正则表达式

来源:互联网 发布:南风知我意七微书包网1 编辑:程序博客网 时间:2024/05/22 16:57

------- android培训、java培训、期待与您交流! ----------

正则表达式是一个好东西啊,它能简化代码,并且更直观的可以看出对数据进行了 怎样的处理


今天看了毕老师视频的正则,发现之前各种if 判断数字的方法是多么的繁琐和麻烦

以校验手机号为例,我们使用的手机号码都是11位数的

如果是今天之前,我会这么写代码

import java.io.*;public class RegexDemo {public static void main(String[] args)throws Exception{checkPhone();}public static void checkPhone()throws Exception{BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));String phone = bufr.readLine();char[] arr = phone.toCharArray();if(phone.length()==11){if(arr[0]=='1'){if(arr[1]=='3' || arr[1]=='5' || arr[1]=='8'){boolean flag = false;for(int i=2; i<phone.length(); i++){if(arr[i]<'0' && arr[i]>'9'){flag = false;break;}elseflag = true;}if(flag)System.out.println("phone:"+phone);}elseSystem.out.println("二位不等于3、5、8中的一个");}elseSystem.out.println("首位不等于1");}elseSystem.out.println("长度不正确");}
这样显然很麻烦,对一个电话号码的时候合法的判断居然要有这么多。

但是今天之后,我知道了正则表达式,于是我果断将代码改写

import java.io.*;public class RegexDemo {public static void main(String[] args)throws Exception{checkPhone_2();}public static void checkPhone_2()throws Exception{BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));String phone = bufr.readLine();//正则写规则String regex = "[1][358]\\d{9}";boolean flag = phone.matches(regex);if(flag)System.out.println(phone+"...是合法号码");elseSystem.out.println(phone+"...是非法号码");}
现在,只需要短短的几行代码就可以省去我之前写的大量判断,并让输入按照我认可的方式进行,同时也阅读性大大增强

嘛,好东西,以后可以多多使用

0 0
原创粉丝点击