包装类和字符串

任务

1.基本数据类型与其包装类
	1.1 基本数据类型复习
	1.2 基本数据类型所对应的包装类
	1.3 数据的装箱和拆箱
	1.4 基本类型与字符串之间的相互转换
2.字符串
	2.1 String类
	2.2 StringBuffer类
	2.3 StringBuilder类
	2.4 正则表达式

目标

1.了解基本数据类型对应的对象包装类
2.掌握数据的装箱和拆箱
3.掌握基本数据类型和字符串之间的相互转换
4.掌握String类中的常用方法
5.掌握StringBuffer类中的常用方法
6.了解StringBuffer和StringBuilder之间的区别
7.了解正则表达式以及常见的用法

第一节 基本数据类型与其包装类

1.1 基本数据类型复习

byte(1字节)、short(2字节)、int(4字节)、long(8字节)、float(4字节)、double(5字节)、char(2字节)、boolean(1字节)

1.2 基本数据类型所对应的包装类

​ byte Byte ​ short Short ​ int Integer ​ long Long ​ float Float ​ double Double ​ char Character ​ boolean Boolean

1.3 数据的装箱和拆箱

拆箱:将包装类型数据转换成基本类型数据 装箱:将基本类型数据包装成包装类型数据 装箱和拆箱的方法: ​ 装箱:使用包装类中的构造方法,或静态valueOf方法

 
 

​ 拆箱:使用包装类中的xxValue方法

 

自动装箱和自动装箱:jdk1.5之后新增的功能

​ 自动装箱:可以直接将基本类型数据赋值给包装类对象

 

​ 自动拆箱:直接将包装类对象数据赋值给基本类型变量

 
1.4 基本类型与字符串之间的相互转换

​ 基本类型转字符串:

​ 1)字符串连接符:任何基本类型数据与字符串链接都变成字符串形式

 

​ 2)String类中的valueOf方法:

 

​ 字符串转基本类型:

​ 1)包装类中的parseXx方法:

注意:

i. 字符串不能直接转成字符类型,需要使用String类中的charAt方法去字符串中的第一个字符

ii. 若字符串转数值类型时,若字符串中存在不能表示数值的字符时,抛出

​ java.lang.NumberFormatException异常

iii. 字符串转布尔类型时,当且仅当字符串是“true”时,结果为true,否则其他任意字符串转布尔类型结

​ 果都是false

 

​ 2)可以使用包装类中的valueOf(String str)方法:Character类中没有valueOf(String str)方法 ​ valueOf方法返回值类型时包装类对象,所以在jdk1.5之前不能使用此方法实现字符处串转基本类型

 

第二节 字符串

字符串常量:

​ 字符串数据是常量,存储在常量池中,常量池中不允许存储相同的数据,字符串可以直接将数据赋值给对象引用.

 
2.1 String类

常用构造方法

方法名描述
String()创建出一个字符串对象,此字符串中没有任何字符,空字符串
String(byte[] bytes, String charsetname)通过使用指定的charset解码指定的 byte 数组,构造一个新的 String
String(String str)初始化一个新创建的String对象,使其表示一个与参数相同的字符序列
 

常用的成员方法:

​ 2.1.1 获取字符串的长度:

 

​ 2.1.2 获取某个字符或者字符串在原字符串中第一次出现的位置

 

​ 2.1.3 获取某个字符或者字符串在原字符串中最后一次出现的位置

 

​ 2.1.4 获取某个位置上的字符

 

​ 2.1.5 判断字符串中是否包含某个子字符串

 

​ 2.1.6 判断字符串中是否有内容

 

​ 2.1.7 判断字符串是否是以某个前缀开始的

 

​ 2.1.8 判断字符串是否是以某个后缀开始的

 

​ 2.1.9 判断字符串的内容是否相等

 

​ 2.1.10 忽略大小写进行比较

 

​ 2.1.11 替换

 

​ 2.1.12 截取

 

​ 2.1.13 去除前面和尾部的空格

 

​ 2.1.14 格式化字符串:将字符串按照指定的格式输出

 

​ 2.1.15 比较

 

​ 2.1.16 拼接

 

​ 2.1.17 内存中的字符串

 

​ 2.1.18 练习

 
2.2 StringBuffer类

字符串缓冲区:使用缓冲区操作字符串要比直接操作字符串效率高

StringBuffer中的常用构造方法:

StringBuffer(String str)构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。
StringBuffer()构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符。
StringBuffer(CharSequence seq)构造一个字符串缓冲区,它包含与指定的 CharSequence 相同的字符。
StringBuffer(int capacity)构造一个不带字符,但具有指定初始容量的字符串缓冲区。

常用的成员方法

​ 2.2.1 增加

 

​ 2.2.2 删除

 

​ 2.2.3 修改

 

​ 2.2.4 获取

 

​ 2.2.5 反转

 
2.3 StringBuilder类

StringBuilder类也是字符串缓冲区,类中的方法与StringBuffer类中的方法使用方法一样,区别在于StringBuilder类中的方法都是线程安全的,而StringBuffer类中的方法都是非线程安全的

2.4 正则表达式

正则表达式就是一个验证字符串格式是否满足要求的字符串

字符类

x字符x
[^abc]任何字符,除了 a、b 或 c(否定)
[a-zA-Z]a 到 z 或 A 到 Z,两头的字母包括在内(范围)
[a-d[m-p]]a 到 d 或 m 到 p:[a-dm-p](并集)
[a-z&&[def]]d、e 或 f(交集)
[a-z&&[ ^bc]]a 到 z,除了 b 和 c:[ad-z](减去)
[a-z&&[ ^m-p]]a 到 z,而非 m 到 p:[a-lq-z](减去)

预定义字符类

. 任意字符(与行结束符可能匹配也可能不匹配)

\d 数字:[0-9]

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

边界匹配器

^ 行开头

$ 行结尾

数量:

X? 一次或0次

X* 0次或多次(包括1次)

X+ 一次或多次

X{n} 恰好n次

X{n, } 至少n次

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

使用String类中的matches方法验证字符串格式:

判断QQ邮箱格式是否正确:

 

使用split方法将字符串按照指定的标记拆分:

 

总结

课前默写

1.设计一个成员内部类,有fun方法
2.关键字
3.final关键字用法
4.static关键字用法:只能修饰类成员

作业

 

面试题