Day12
一、StringBuffer类
1、线程安全的可变字符序列(可变的字符串)《jdk1.0》
2、一个类似于String的字符串缓冲区
3、某些方法调用可以改变该序列的长度和内容《append()、insert()》
String、StringBuffer的区别:
相同点:都是对字符序列进行操作
不同点:1.String的数据是不可变的,StringBuffer的内容是可变
2.StringBuffer自带缓冲区,读取数据块,效率更高
4、StringBuffer的构造:(1)StringBuffer():无参的构造器《默认会给16个字符大小的缓冲区》capacity
()是获取缓冲区容量大小的方法
(2)StringBuffer(int capacity):会默认给一个容量大小值
5、StringBuffer常规的一次方法:
(1)追加内容:append():向末尾追加数据;
insert(int offset,char c):向指定位置追加数据,offset参数传递是追加的索引,char是追加的字符;
(2)删除内容:deleteCharAt(int index):根据索引进行删除;
delete(int start,int end):根据区间进行删除,start:开始区间,end:结束区间,索引从0开始,包头不包尾;
(3)获取内容:charAt(int index):根据索引获取字符;
indexOf(String str):查找是否存在这个字符,存在返回当前的索引,不存在返回-1;
length():获取字符串的长度;
replace(int start,int end,String str):根据区间来进行替换;
reverse():控制字符反转;
toString():转换成String;
String和StringBuffer的相互转换:
- String转成StringBuffer:1.通过构造方法new StringBuffer(“ABC”);2.通过调用其append,newStringBuffer().append(“ABC”)
- StringBuffer转成String:1.通过toString()方法;2.通过String构造方法new String(new StringBuffer)
二、StringBuiler类
1、一个可变的字符序列
2、多个线程是不安全的
StringBuffer和StringBuilder的区别:版本不一样;StringBuffer多线程安全,效率低(开发里使用比较多);StringBuilder多线程不安全,效率较高
三、包装类(基本数据类型的引用数据类型)
- 基本数据类型里,除了int==》Integer,char==》Character之外,其他的包装类都是把首字母换成大写
- 包装类的好处:可以使用包装类里的方法;可以进行类型的相互转换;集合里的泛型必须使用引用数据类型
1、Integer类:在对象中包装了一个基本类型int的值,Integer类型的对象包含一个int类型的字段
2、构造方法:public Integer(int value)、public Integer(String s)第二个构造传递的参数必须是数字的String类型,否则会出现异常(java.lang.NumberFormatException)
3、常量:public static final int MAX_VALUE:获取int类型最大的值;public static final int MIN_VALUE:获取int类型最小的值;public static final int SIZE:获取int类型的位数(所有的包装类都会有这三个常量)
4、常规方法:public byte byteValue():返回一个byte,相互转换的时候不要超过最大的范围;
public static int parseInt(String s):静态方法,把String转换成int类型的方法(最常用);
public static String toBinaryString(int i):把int类型转换成二进制;
public static String toOctalString(int i):把int类型转换成八进制;
public static String toHexString(int i):int类转换为16进制;
public static Integer valueOf(int i):把int类型转换成包装类;
String、int、Integer相互转换:
- String转换int:static int parseInt(String s)
- String转换Integer:构造器new Integer();static Integer valueOf(String s)
- int转换String:new String(int i);使用(+"")《常用》
- Integer转换String:toString()方法
- Integer<==>int:自动拆箱、装箱(直接赋值);new Integer(int),int intValue()(手动装箱、拆箱)
四、正则表达式
- 就是对一个字符串进行校验的规则,主要做验证,把复杂的问题简单化;不好地方:记忆量大,而且不一定写得对
- 正则表达式的三个使用方法:第一是比较matches(String regex);第二是分割split(String regex);第三是替换replaceAll(String regex, String replacement)