黑马成员---StringBuffer,StringBuilder,Integer,自动装箱和拆箱,正则表达式:匹配,切割,替换,查找

  1. ------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

1.      第十三天内容回顾 String类,特性,不new对象,不变性,方法熟练。

  构造,判断,获取,转换,其他

  StringBuffer缓冲区,底层可变数组,自动扩容复制数组,提示字符串的操作效率

  ""  构造方法,空参数,String类型重载  append delete 返回值类型都是本类对象StringBuffer,方法的调用链

 

2.      第十四天学习内容,StringBuffer,StringBuilder,基本数据类型对象包装类 Integer,JDK1.5后的新特性,自动装箱和拆箱。正则表达式:匹配,切割,替换,查找

 

3.      StringBuffer类的常见方法

l  在缓冲区指定位置插入数据StringBuffer insert(int index,任意数据)

l  修改缓冲区中指定位置的单个字符 void setChatAt(int index,char ch)

l  翻转缓冲区abc  cba  StringBuffer reverse()

l  将缓冲区中的内容变成字符串,变成String对象,可变对象转成了不可变对象,直接使用String类的方法  String toString()

 

4.      StringBuilder类

  开始于JDK1.5版本。

  StringBuilder类的方法,以及类的使用方法,和StringBuffer完全一致

  区别在哪里:

     StringBuffer 线程安全,运行速度慢

     StringBuilder 线程不安全,运行速度快

 

5.      基本数据类型对象包装类

  一切都是对象,8个基本数据类型,也进行了对象的封装,提供更多的方法和属性,方便操作这些基本数据类型。既然封装成了对象,描述类,全部在java.lang包

l  byte 对应包装类 Byte

l  short 对应包装类 Short

int 对应的包装类 Integer

l  long 对应的包装类 Long

l  boolean 对应的包装类 Boolean

l  float 对应的包装类 Float

l  double 对应的包装类 Double

l  char 对应的包装类 Character

    1个int数据,怎么变成字符串1+""   字符串"1"变成基本数据类型 int 1

    以后开发,用户所有的输入全部是字符串

 

6.      Integer类--最重要方法

  将数字格式的字符串,转成基本数据类型int,可以数学计算

  静态方法 staticint parseInt(String s)将参数字符串,转成基本数据类型,字符串中的字符必须是数字格式 "123"  "123"

 静态方法 staticint parseInt(String s,int radix) radix进制,表示前面的字符串参数是几进制的数据,方法的计算结果都是十进制

 

7.      Integer类的其他方法

l  进制转换方法,将十进制转成二进制,八进制,十六进制。toXXXString(int i)返回一个字符串 XXX=Bin XXX = octal XXX = Hex

l  构造方法,两种重载形式,第一个重载传递int,第二个重载传递String。将参数包装成Integer对象,需要一个方法配合,返回是int intValue() 将构造器中的参数转成基本数据类型int

l  静态方法 staticString toString(int i)基本类型转成String对象 

l  静态方法 staticString toString(int i,int radix) (6,2)返回字符串,字符串表示的是6的二进制,参数第一个是十进制

 

8.      JDK1.5的新特性,自动装箱和拆箱

  自动--不需要程序人员手动参与,但是知道原理是什么

  可以直接让引用类型和基本数据类型进行运算

  装箱-- 基本类型包装成对象

  拆箱-- 引用类型变化基本数据类型

 

9.      正则表达式Regex

  正则表达式,专门处理字符串的一种技术。原有的字符串的处理功能,String Buffer不够用,不能处理复杂的字符串。

  正则处理复杂操作的字符串。

  需求:验证一个QQ号码的合法性

  必须全数字,不能0开头,位数的限制,11-5 

  解决办法两种,采用字符串,String类实现

                采用正则表达式,来实现

  通过验证QQ号码案例,正则表达式更简单,代码更少,处理复杂字符串推荐使用正则表达式。

  弊端:JVM的底层也是通过大量的计算和String类的方法,来实现正则的功能,效率相对较低

 

10.  正则表达式的匹配功能

  String类方法matches实现。方法是String类对象调用"".matches()方法参数,就是一个正则表达式,就是一种规则。检测字符串和规则是否匹配,完全匹配返回真

 num.mathces("......")

  关注的是方法matches(规则)怎么写的问题

  java.util.Regex.Pattern类,描述了正则怎么写

l  字符类[abc] 匹配字符是不是abc其中的一个

l  字符类[^abc] 只要不是abc其中一个

l  字符类[a-zA-Z] 匹配所有的字母

l  字符类[0-9] 匹配所有的数字

l  预定义字符 \d 匹配所有数字

l  预定义字符 \D 匹配所有非数字

l  预定义单词字符 \w 匹配26个字母大小写,数字 _[a-zA-z0-9_]

l  预定义单词字符 \W 匹配非26个字母大小写,数字 _[^a-zA-Z0-9_]

l  数量词 ? 匹配一次或者一次也没有

l  数量词 * 匹配零次或多次

l  数量词 + 一次到多次

l  数量词 {n} 恰好n次

l  数量词 {n,} 至少n次

l  数量词 {n,m} 至少n次,但不超过m次

 

11.  正则表达式的切割功能

  String类的方法split("正则规则") 返回字符串数组

  正则组:符号()表示一个组,专门处理叠词aa bb 东东  宝宝

  (.) 要求,组要编号1

  记住:叠词处理用组()\\编号  

 

12.  正则表达式替换功能

  String类的方法repalceAll(Stringregex,String replace) 第一个参数正则,替换匹配上的内容

  替换中,替换上组匹配上的字符,就可以了。组匹配内容捕获,捕获组 $,捕获到组匹配上的叠词中的字符

 

13.  正则表达式练习

  电子邮件格式的验证  地址,检测合法性  fddgfdfd@544.com.cn

  @符号前 数字,字母大小写 _

  @符号后,.前面 数字小写,字母

  .符号后面,字母小写 重复

  写好之后,做项目,不要写了,直接复制!!

 

  叠词还原:

    我... 我... 我. 我我我... 要要.. 要要要..... 要要.. 学学.. 学学学学学. 学. 编编编... 编编编.. 编编. 编. 编编编. 编编. 程程. 程程程. 程程程程. 程

 

14.  正则表达式查找功能

 在一个字符串中,使用正则表达式,将需要的内容,获取出来

 实现功能,需要2个类的支持,java.util.regex  Pattern Matcher

 实现步骤:

l  正则规则预编译 ,使用Pattern类静态方法compile(正则规则),方法返回一个对象,这个对象就是Pattern类的本类对象

l  Pattern类的对象,调用Pattern类的非静态方法Mathcer matcher(查找的字符串),将正则规则和查找字符串进行匹配,返回一个对象,是Matcher(匹配器)

l  调用Mathcer类方法find进行查找,找到返回真,找不到返回假

l  调用Matcher类的方法group获取查找后结果,方法返回字符串

    Mathcer类两个方法 返回值都是int  start() end() 返回获取到的字符串的下标

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值