【黑马程序员】java基础_正则表达式
2014-06-11 18:09
381 查看
------- 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;
}
else
flag = true;
}
if(flag)
System.out.println("phone:"+phone);
}
else
System.out.println("二位不等于3、5、8中的一个");
}
else
System.out.println("首位不等于1");
}
else
System.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+"...是合法号码");
else
System.out.println(phone+"...是非法号码");
}现在,只需要短短的几行代码就可以省去我之前写的大量判断,并让输入按照我认可的方式进行,同时也阅读性大大增强
嘛,好东西,以后可以多多使用
正则表达式是一个好东西啊,它能简化代码,并且更直观的可以看出对数据进行了 怎样的处理
今天看了毕老师视频的正则,发现之前各种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;
}
else
flag = true;
}
if(flag)
System.out.println("phone:"+phone);
}
else
System.out.println("二位不等于3、5、8中的一个");
}
else
System.out.println("首位不等于1");
}
else
System.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+"...是合法号码");
else
System.out.println(phone+"...是非法号码");
}现在,只需要短短的几行代码就可以省去我之前写的大量判断,并让输入按照我认可的方式进行,同时也阅读性大大增强
嘛,好东西,以后可以多多使用
相关文章推荐
- 黑马程序员_毕向东JAVA基础_正则表达式
- 黑马程序员-Java基础、正则表达式
- 黑马程序员_java基础笔记(08)...GUI,网络编程,正则表达式
- 黑马程序员学习log第九篇基础知识:JAVA的面向对象之正则表达式及反射总结
- 黑马程序员-----java基础 正则表达式
- 黑马程序员--Java基础--正则表达式、反射机制
- 黑马程序员——Java基础---正则表达式
- 黑马程序员---Java基础总结---正则表达式
- 黑马程序员_Java基础篇(二)——正则表达式
- 黑马程序员---java基础之正则表达式
- 黑马程序员---JAVA基础--正则表达式(十六)
- 黑马程序员----JAVA基础之正则表达式
- 黑马程序员-java基础 正则表达式
- 黑马程序员_Java基础_正则表达式
- 黑马程序员---Java基础--25天(正则表达式)
- 黑马程序员 java基础之正则表达式
- 黑马程序员--JAVA基础复习之正则表达式
- 黑马程序员-Java语言基础–正则表达式 第25天
- 黑马程序员——【Java基础】——正则表达式
- 黑马程序员-Java基础总结14——正则表达式