一、String类的重要性
在C语言中已经涉及到字符串了,但是在C语言中要表示字符串只能使用字符数组或者字符指针,可以使用标准库提 供的字符串系列函数完成大部分操作,但是这种将数据和操作数据方法分离开的方式不符合面相对象的思想,而字 符串应用又非常广泛,因此Java语言专门提供了String类。
平常也会被问到:String、StringBuff和StringBulider之间的区别。
二、构造方法
String类提供的构造方式非常多,常用的就以下三种:
String是引用类型,内部并不存储字符串本身,在String类的实现源码中,String类实例变量如下
在Java中“”引起来的也是String类型对象。
三、String对象的比较
1、 ==比较是否引用同一个对象
注意:对于内置类型,==比较的是变量中的值;对于引用类型==比较的是引用中的地址
2、boolean equals(Object anObject) 方法:按照字典序比较
字典序:字符大小的顺序 String类重写了父类Object中equals方法,Object中equals默认按照==比较,String重写equals方法后,按照 如下规则进行比较,比如:s1.equals(s2)
3、int compareTo(String s) 方法: 按照字典序进行比较
与equals不同的是,equals返回的是boolean类型,而compareTo返回的是int类型。
具体比较方式:
1. 先按照字典次序大小比较,如果出现不等的字符,直接返回这两个字符的大小差值
2. 如果前k个字符相等(k为两个字符长度最小值),返回值两个字符串长度差值
str8若大于str9则返回正数,小于返回负数,等于返回0
4、int compareToIgnoreCase(String str) 方法:与compareTo方式相同,但是忽略大小写比较
四、字符串查找
字符串查找也是字符串中非常常见的操作,String类提供的常用查找的方法: