1、String字符串类
1.1简介
- String不是基本数据类型,是一种引用类型
- String代表一组不可改变的Unicode字符序列。String类对象的内容一旦被初始化,不能再改变
- String类是final修饰的终极类,不能产生子类
1.2创建String
- 动态创建:例:String str="abc";在方法区常量池产生唯一一个字符串对象如果有另外一个引用指向了相同的字符串,两个引用变量的地址相同
- 静态创建:例:String str=new String("abc");在堆内存中产生一个不同的对象,会产生两个对象
1.3构造方法
- new String()
- new String("abc")
- new String(char类型数组)
- new String(char类型数组,数组索引位置,取出数组长度)
- new String(byte类型数组)
- new String(byte类型数组,数组索引位置,取出数组长度)
1.4字符串连接符
可以使用"+"号做连接符,任何的数据类型和字符串使用加号连在一起,最后都会变成字符串类型
1.5常用方法
- length():获取字符串长度,返回int类型值
- equals():判断两个字符串中的字面量值是否相等,返回boolean类型值
- equalslgnoreCase(String):不区分大小写比较字面量值是否相等,返回boolean类型值
- indexOf(char):查找给定值在字符串中第一次出现的下标位置,返回int类型值
- indexOf(String):同上
- indexOf(char,int):查找给定值在字符串中给定索引位置开始,第一次出现的下标位置,返回int类型值
- indexOf(String,int):同上
- IastIndexOf(int):查找给定值在字符串中最后一次出现的下标位置,返回int类型值
- IastIndexOf(String):同上
- IastIndexOf(char,int):查找给定值在字符串中给定索引位置开始,最后一次出现的下标位置,返回int类型值
- IastIndexOf(String,int):同上
- toUpperCase():将字符串中所有字符都转换为大写
- toLowerCase():将字符串中所有字符都转换为小写
- charAt(int):将字符串索引位置的字符取出来,返回char值
- substring(int):对字符串进行截取,从指定索引位置开始,截取到最后
- substring(int,int):对字符串进行截取,从指定索引位置开始,截取到结束位置(结束位置不包含)
- trim():将字符串前后空格去除
- cancat(String):字符串连接,如果字符串是null值不能使用,并且只能传字符串参数,其他类型不能使用
- getBytes():将一个字符串转成byte类型数组
- toCharArray():将一个字符串转成char类型数组
- cantains(String):判断字符串中是否包含给定值,返回boolean类型的值
- startsWith(String):判断字符串是否以给定值开始
- startsWith(String,int):判断字符串从索引位置开始,是否以给定值开始
- endsWith(String):判断字符串是否以给定值结束
- replace(char,char):对字符串指定字符,进行新的字符替换
- replace(CharSequence,CharSequence):对字符串指定字符序列,进行新的字符序列替换
- replaceAll(String,String):按正则表达式的要求,将给定的值替换满足正则的字符串
- split(String):按正则表达式的要求,做分割的要求返回一个String类型的数组
- matches(String):判断字符串是否符合给定的正则,返回boolean类型的值
- Pattern.matches(String,String):判断字符串是否符合给定的正则,返回boolean类型的值
- contentEquals(StringBuffer):字符串和StringBuffer作比较
- contentEquals(charSequence):字符串和字符序列作比较
2、正则表达式
2.1简介
- 正则表达式又叫做规则表达式。是一种文本模式,包括普通字符和特殊字符(元字符)。正则使用单个字符串来描述、匹配一系列某个句法规则的字符串,通常用来检索、特换符合某个模式(规则)的文本。
- 目的1:给定一个正则表达式,判断给定的字符串是否符合正则表达式的过滤逻辑
- 目的2:通过正则表达式,从字符串中获取我们想要的特定部分(提取)
3、StringBuffer
3.1简介
- 内容可变的字符串类,使用StringBuffer来对字符串的内容进行动态操作,不会产生额外的对象
- 初始时,默认有16个字符作为缓冲器
3.2构造方法:
- new StringBuffer();
- new StringBuffer(String);
- new StringBuffer(int);
- new StringBuffer(charSequence);
3.3常用方法:
- append():在当前StringBuffer对象上,追加其他内容
- toString():转成String对象
- capacity():返回StringBuffer的容量,返回一个int值
- length():长度
- setCharAt(int,char):将给定索引位置的字符设置为指定的值
- reverse():反转
- delete(int,int):在StringBuffer删除指定开始索引位置到结束索引位置(包含开始,不包含结束)
- insert(int,Object):在指定的索引位置,插入给定的值
- replace(int,int,String):将指定的字符串替换到起始位置到结束位置(包含开始,不包含结束)
- deleteCharAt(int):删除指定索引位置的字符
4、StringBuilder
- 提供了和StringBuffer相似的API
- StringBuffer的方法,都有synchronized修饰,是线程安全的
- StringBuilder的方法,没有synchronized修饰,非线程安全的。如果是单线程操作字符串相关处理,StringBuilder的效率最高
5、String、StringBuffer、StringBuilder的区别
- String和StringBuffer区别:一个是常量,一个是变量。String 是一个final修饰的终结类,不能产生子类,是使用final的byte数组来存储值,所以一旦创建不能改变。如果经常对字符串进行修改、删除或者插入操作,建议使用StringBuffer效率更高
- StringBuffer和StringBuilder区别:一个是有线程安全的,一个是非线程安全的