您的位置:首页 > 产品设计 > UI/UE

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

2014-11-12 20:59 429 查看
------<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

l 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() 返回获取到的字符串的下标
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: