Java 中 String、StringBuffer、StringBuilder 类
一、String类
1、须知
本质:字符串的本质是一个字符的数组。
String s3 = "abc" 和 String s4 = new String("abc")的区别;
String s3 = "abc":
以字符数组的形式存在堆中的常量池中,在常量池分配地址。
String s4 = new String("abc"):
首先在常量池出现,分配地址,然后再堆中开辟空间,并为此空间赋值,分配地址,此空间存的是在常量池中的地址。
2、构造函数
String str = new String (byte[] bytes):改参数为字节数组,对应 ASCII码表 。
String str = new String (byte[] bytes,int offset,int length):第一个参数:字节数组,第二个参数:传入字节数组的开始索引,第三个参数:传入字节数组索引位置,截取多少位。
String str = new String (char[] chars)::改参数为字符数组。
String str = new String (char[] char,int offset,int length):第一个参数:字符数组,第二个参数:传入字符数组的开始索引,第三个参数:传入字符数组索引位置,截取多少位。
3、常用方法
length():获取字符串的长度。返回int
substring(int startIndex,[ intEndIndex ]):截取字符串,第一个参数:开始截取字符串的索引,第二个参数:不写,截取到最后,写截取到的索引位置, (包头不包尾) 。返回 String
startsWith(String str):判断该字符串是不是以指定子字符串开始 返回Boolean
endsWith(String str):判断该字符串是不是以指定子字符串开始 返回Boolean
contains(String str):判断大字符串是不是包含小字符串 返回Boolean
indexOf(String str):判断该小字符串在大字符串第一次出现的索引位置 返回int
getBytes():使用: byte[] bytes = str.getBytes() ; 将指定字符串转字节数组
toCharArray():使用:char[] chars = str.toCharArray();将指定字符串转字符数组
equals(Object obj) :判断两个字符串是不是内容一样 返回Boolean;
equalsIgnoreCase(Object obj):判断两个字符串是不是内容一样 ,但是不区分大小写 返回Boolean;
二、StringBuffer 类
可变字符串:
1、StringBuffer 和 String 的转换;
String 转 StringBuffer :StringBuffer sb = new StringBuffer(String str);
StringBuffer 转 String :String str = sb.toString();
2、常用方法
append(Object obj):在后边追加指定字符串。
delete(int startIndex,int endIndex):删除指定索引位置的字符串。
insert(int Index,String str):在指定索引位置插入指定字符串
replace(int startIndex,int endIndex,String str):将指定索引区域的字符串替换指定字符串
reverse():将字符串反转
以上方法返回的都是 StringBuffer 类型的对象 所以可以链式编程
StringBuilder类:拥有和 StringBuffer 类一样的方法,但是效率由于 StringBuffer