黑马程序员——基础知识——正则及常见类

来源:互联网 发布:数据库监控 开源 编辑:程序博客网 时间:2024/06/15 23:46
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

Day14   

14.01 正则表达式的概述和简单实用

       1、正则表达式是指一个用来描述或匹配一系列符合某个语法规则的字符串的单个字符串。其实就是一种规则,有自己特殊的应用

       2、案例演示

       需求:校验qq号码

1、要求必须是5-15位数字

2、0不能开头

3、必须是数字

 

A非正则表达式实现

B正则表达式实现


14.02 字符类演示

       1、字符类

              [abc]  a、b或c(简单类)

              [^abc]    任何字符,除了a、b、c(否定)

              [a-zA-Z] a到z或A到Z,两头的字母包括在内(范围)

              [0-9]     0到9的字符都包括



14.03 预定义字符类演示

       1、预定义字符类

              . 代表任何字符

              \d 代表数字:[0-9]

              \w   单词字符:[a-zA-Z_0-9]




14.04 数量词

       Greedy  数量词

       X?      x, 0次或1次

X*          x,0次或多次

X+         x,1次或多次

X{n}        x,恰好n次

X{n,}       x,至少n次

X{n,m}   x,至少n次,但是不超过m次





14.05 正则表达式的分割功能

1、String类的功能:public String[] split(String regex)

正则都是对字符串的操作

       2、案例演示



14.06 把给定字符串中的数字排序

       1、需求:我有如下一个字符串:“91 27 46 38 50”,请写代码实现最终输出结果是:“27 38 46 50 91”



14.07 正则表达式的替换功能

       1、String类的功能

              Public String replaceAll(Stringregex,String replacement)

       2、案例演示



14.08 正则表达式的分组功能

       1、捕获组可以用过从左到右计算其开括号来编号。例如,在表达式((A)(B(C)))中,存在四个这样的组:(按左括号顺序来分组)

                     1((A)(B(C)))

                     2(A)

                     3 (B(C)))

3 (C)             

       组零始终代表整个表达式

       2、案例演示

              A切割:需求 请按照叠词切割:“sdqqfgkkkhjpppkl”;

              B替换:需求 我我…我。要。要要要。。。学学学。。学。。。编编。编。程

              将字符还原成“我要学编程”



14.09 Pattrn 和Matcher的概述

       1、Pattern和Matcher的概述

       Pattern:regex包下的final类。

       2、模式和匹配器的典型调用顺序

              通过API,查看Pattern类的说明

             

              典型调用顺序是

              Pattern p  = Pattern.compile(“a*b”);

              Matcher m = p.matcher(“aaaaab”);

              boolean b = m.matches();




14.10 正则表达式的获取功能

       1、Pattern和Matcher的结合使用

       2、需求:把一个字符串中的手机号码获取出来



14.11 Math类的概述和方法使用

       1、Math类包含用于执行基本数学运算的方法,如初等指数,对数,平方根和三角函数,所有都是静态的,构造方法私有,final修饰

     Math.PI  圆周率

       2、成员方法

       public static int abs(int a)

       public static double ceil(double a)

       public static double floor(double a)

       public static int max(int a , int b)  min自学

       public static double pow(double a,doubleb)

       public static double random();

       public static int round(float a) 参数为double的自学

       public static double sqrt(double a)



14.12 Random类的概述和方法使用

       1、此类用于产生随机数如果用相同的种子创建两个Random实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。

       属于util包下,可以继承。

       2、构造方法

              public Random();

              public Random(long seed)

       3、成员方法

              public int nextInt()

              public int nextInt(int n )重点掌握



14.13 System类的概述和方法使用

       1、System类包含一些有用的类字段和方法,它不能被实例化,字段和方法都是静态的,私有构造方法

       System.in 标准的键盘输入流

       System.out 标准的输入流,默认指向控制台

              2、成员方法

              Public static void gc()//运行垃圾回收器

              Public static void exit(intstatus)//终止当前正在运行的Java虚拟机

              Public static longcurrentTimeMillis()//现在与1970.1.1午夜的时间差:   毫秒,获取当前时间的毫秒值

              Public static voidarraycopy(Object src,int srcPos,Object dest,int destPos,int length) :src源数组,srcPos源数组中的起始位置,dest目标数组,destPos目标数组中的起始位置,length要复制的数组元素的数量

       3、案例演示




14.14 BigInteger类的概述和方法使用

       1、可以让超过Integer范围内的数据进行运算,可以放很大的整数

       属于Math包下,不可变的任意精度的整数

       2、构造方法

              public BigInteger(String val)

       3、成员方法

              public BigInteger add(BigIntegerval)

              public BigIntegersubtract(BigInteger val)

              public BigIntegermultiply(BigInteger val)

              public BigIntegerdivide(BigInteger val)

              public BigInteger[]divideAndRemainder(BigInteger val):取两个数组,一个是取商的数组,一个是取模的数组。divideAndRemainder单词意思就是除数和余数



14.15 BigDecimal类的概述和方法使用

       1、由于在运算的时候,float类型和double很容易丢失精度,演示案例,所以,为了能精确的表示、计算浮点数,java提供了BigDecimal

              主要作用是为了更精确的去存储小数,当然也可以存储很大的整数

              不可变的、任意精度的有符号十进制数

       2、构造方法

              public BigDecimal(String val)

              public BigDecimal(double d)

              构造方法也可以放BigInteger数,因为整数小于小数

       3、成员方法

              public BigDecimal add(BigDecimalaugend)

              public BigDecimalsubtract(BigDecimal subtrahend)

              public BigDecimal multiply(BigDecimalmultplicand)

              public BigDecimaldivide(BigDecimal divisor)

       4、案例演示

              


14.16 Date类的概述和方法使用

       1、类Date表示特定的瞬间,精确到毫秒

util包下的

       2、构造方法

              public Date()

              public Date(long date)

       3、成员方法

              public long getTime()

              public void setTime(long time)


14.16 Date类的概述和方法使用

       1、类Date表示特定的瞬间,精确到毫秒

util包下的

       2、构造方法

              public Date()

              public Date(long date)

       3、成员方法

              public long getTime()

              public void setTime(long time)




14.17 SimpleDateFormat类实现日期和字符串的相互转换

       1、DateFormat是SimpleDateFormat的父类

DateFormat是日期/时间格式化子类的抽象类,它以语言无关的方式格式化并解析日期或时间,不能new对象(实例化),构造方法用protected修饰,所以构造方法只能提供给自己的子类使用。是抽象类,所以其子类SimpleDateFormat用于父类的所有方法,所以直接用子类就好了。

       2、SimpleDateFormat构造方法

              Public SimpleDateFormat()

              Public SimpleDateFormat(Stringpattern)

       3、成员方法

              Public final String format(Datedate)

              Public Date parse(String source)



14.18 你来到这个世界多少天案例

       1、需求:算一下你来到这个世界多少天?



14.19 Calendar(日历)类的概述和获取日期的方法

       1、Calendar类是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的星期)提供了一些方法。

Calendar类替代了Date类中方法

       2、成员方法

              public static CalendargetInstance()

              public int get(int field)



14.20 Calendar类的add()和set()方法

       1、成员方法

              public void add(int field,intamount)

              public final void set(int year,intmonth,int date)

       2、案例演示



14.21 如何获取任意年份是平年还是闰年




0 0