1、字符串比较
“==”是比较字符串内存地址是否一致
“equal”是比较字符串内容是否一致
2、String类对象两周内高实例化方式的区别:
直接赋值(String str = “字符串”):只会开辟一块堆内存空间,并且会自动保存在对象池中,以供下次重复使用;
构造方法(String str = new
String(“字符串”)
):会开辟两块堆内存空间,其中一块空间会形成垃圾,并且不会自动入池,但是用户可以使用intern()方法手工入池。
3、字符串内容不能发生改变,对于字符串对象内容的改变,是利用引用关系的变化而实现的,但是每一次的变化都会产生垃圾空间。
String 的内容不要过多频繁的修改,因为每一次的变化都会产生垃圾空间。
String类的常用方法
字符串比较
public boolean equals(String anObject):比较两个字符串是否相等,区分大小写;
public boolean
equalsIgnoreCase(String anotherString) :比较两个字符串是否相等,不区分大小写;
public int
compareTo(String
anotherString
):判断两个字符串大小(按照字符编码比较),此方法的返回值有如下三种结果:
=0:表示相等;
>0:表示大于;
<0:表示小于;
public int
compareTo
IgnoreCase
(String
anotherString
):判断两个字符串大小(按照字符编码比较),不区分大小写,此方法的返回值有如下三种结果:
=0:表示相等;
>0:表示大于;
<0:表示小于;
字符串查找
public boolean contains(String s):判断指定的内容是否存在
public
int indexOf(String str):由前向后查找指定字符串的位置,如果查找到了则返回(第一个字母)位置的索引,如果找不到返回-1.
public
int indexOf(String str,int fromindex):由指定位置查找指定字符串的位置,
如果查找到了则返回(第一个字母)位置的索引,如果找不到返回-1.
public
int lastIndexOf(String str):
由后向前查找指定字符串的位置,如果查找到了则返回(第一个字母)位置的索引,如果找不到返回-1.
public
int lastIndexOf(
String str,int fromindex
):
由指定位置从后往前查找指定字符串的位置,
如果查找到了则返回(第一个字母)位置的索引,如果找不到返回-1.
public boolean startsWith(String prefix):判断是否以指定的字符串开始
public boolean startsWith(String prefix,int offset):以指定位置开始,判断是否以指定的字符串开始
public boolean endsWith(String prefix):判断是否以指定的字符串结束
public boolean endsWith(String prefix
,int offset
):
以指定位置开始,
判断是否以指定的字符串结束
字符串替换
public String replaceAll(String regex,String replacement):用新的内容全部替换掉旧的内容
public String replaceFirst(String regex,String replacement):替换首个指定的内容;
字符串截取
public String subString(int beginIndex):从指定索引截取到结尾
public String subString(int beginIndex,int endIndex):从指定所以截取到指定位置
字符串拆分(注意遇到拆分不了的,需要对regex进行转义拆分)
public String[] split(String regex):按照指定字符串进行全部拆分
public String[] split(String regex,int limit):按照指定字符串进行部分拆分,最后数组的长度是由limit决定的。
字符串操作其他
public String concat(String str):字符串连接,与“+”类似
public String toLowerCase():转小写
public String toUperCase():转大写
public String trim():去掉字符串左右两边的空格,中间空格保留
public int length():获取字符串长度
public boolean isEmpty():判断是否是空字符串(不是null,而是“”,长度是0)
public String intern():数据入池