大家好,我是小涛,一名刚学Java的一个小白,我希望把我所学到的内容分享出来,如有错误,望大佬指出,本人浅薄理解,谢谢大家观看。
文章目录
前言
记得我在学String类的时候,我本人就对StringBuffer类有些不理解,为此我也查了许多资料,现在我希望能把我所学到的分享给大家,浅薄理解,仍有不足,感谢所有人给的鼓励。
提示:以下是本篇文章正文内容,下面案例可供参考
一、StringBuffer类的构造方法
1.StringBuffer类的构造方法代码如下
/*构造方法
* StringBuffer();
* StringBuffer(String str);
*/
public static void main(String[] args) {
method01();
method02();
method03();
method04();
method05();
method06();
method07();
method08();
method09();
}//我所构造的所有方法
StringBuffer person10=new StringBuffer("");//最简单的构造方法
public static void method01() {
//无参构造
StringBuffer person01=new StringBuffer();
System.out.println(person01);
//有参构造
StringBuffer person02=new StringBuffer("Ray");
System.out.println(person02);
}
2.StringBuffer成员方法如下
/*成员方法
* StringBuffer append(char c) //添加字符到StringBuffer对象末尾
* StringBuffer insert(int offest,String str)
* 在StringBuffer对象中的offest位置插入字符串str
* StringBuffer deleteCharAt(int index)移除StringBuffer对象中指定位置的字符
* StringBuffer delete(int start,int end)删除StringBuffer对象中指定范围的字符或字符串
* StringBuffer replace(int start,int end,String s)
* 将StringBuffer对象中指定范围的字符串用新的字符串s进行替换
* void setCharAt(int index,char ch)修改指定位置index处的字符
* StringBuffer toString()返回StringBuffer缓冲区的字符串对象
* StringBuffer reverse() 将此StringBuffer 对象其反转形式取代
*/
public static void method09() {
StringBuffer person10=new StringBuffer("IloveJava");
person10.reverse();//StringBuffer reverse() 将此StringBuffer 对象其反转形式取代
System.out.println(person10);
}
public static void method08() {
StringBuffer person09=new StringBuffer("Lucy");
String str=person09.toString();//StringBuffer toString()返回StringBuffer缓冲区的字符串对象
System.out.println(str);
}
public static void method07() {
StringBuffer person08=new StringBuffer("HiJava");
person08.setCharAt(2,'L');//void setCharAt(int index,char ch)修改指定位置index处的字符
System.out.println(person08);
}
public static void method06() {
StringBuffer person07=new StringBuffer("HelloWorld");
person07.replace(4, 6, "yT");//StringBuffer replace(int start,int end,String s)
System.out.println(person07);
}
public static void method05() {
StringBuffer person06=new StringBuffer("Carl");
person06.delete(2, 4);//StringBuffer delete(int start,int end)
System.out.println(person06);
}
public static void method04() {
StringBuffer person05=new StringBuffer("Tom");
person05.deleteCharAt(2);// StringBuffer deleteCharAt(int index)移除StringBuffer对象中指定位置的字符
System.out.println(person05);
}
public static void method03() {
StringBuffer person04=new StringBuffer("Jack");
person04.insert(3,"ss");//StringBuffer insert(int offest,String str)
System.out.println(person04);
}
public static void method02() {
StringBuffer person03=new StringBuffer("Kitty");
person03.append("Hi");//StringBuffer append(char c) //添加字符到StringBuffer对象末尾
System.out.println(person03);
}
我得代码下的运行截图
二、String类,StringBuffer类和StringBuilder类的异同
StringBuffer、StringBuilder和String类似,底层也是用一个数组来存储字符串的值,并且数组的默认长度为16,即一个空的StringBuffer对象数组长度为16。实例化一个StringBuffer对象即创建了一个大小为16个字符的字符串缓冲区。但是当我们调用有参构造函数创建一个StringBuffer对象 时,数组长度就不再是16了,而是根据当前对象的值来决定数组的长度,数组的长度为“当前对象的值的长+16”。所以一个 StringBuffer 创建完成之后,有16个字符的空间可以对其值进行修改。如果修改的值范围超出了16个字符,会先检查StringBuffer对象的原char数组的容量能不能装下新的字符串,如果装不下则会对 char 数组进行扩容。(此文案转载自其他博主)
StringBuffer和String的区别
StringBuffer长度和内容可以改变,String不可变。
使用StringBuffer来拼接字符串,不会浪费太多的空间资源。
StringBuffer又称为可变字符序列,它是一个类似于 String 的字符串缓冲区,通过某些方法调用可以改变该序列的长度和内容。原来StringBuffer是个字符串的缓冲区,即就是它是一个容器,容器中可以装很多字符串。并且能够对其中的字符串进行各种操作。
总结
这就是我所学得的内容,另外感谢给我提供代码的课代表,用你的代码以及方法我能更好的理解深入关于StringBuffer类的用法,希望在我这篇博客下,读者能对于StringBuffer类的理解更加深入一些,本人浅薄理解,感谢观看。