StringBuffer 浅淡理解

834-160G61254301I.jpg

1、StringBuffer对象的初始化

1.StringBuffer 用在对多种数据类型的拼接,和若干次拼接,效率更高,内存更节省
2.如果可能,建议优先采用StringBuilder该类,因为在大多数实现中,它比 StringBuffer 要快。
3.StringBuilder的API与StringBuffer相同,StringBuilder非线程安全,效率高,StringBuffer线程安全,效率低

StringBuffer对象的初始化不像String类的初始化一样,Java提供的有特殊的语法,而通常情况下一般使用构造方法进行初始化。
例如:

StringBuffer s = new StringBuffer();

这样初始化出的StringBuffer对象是一个空的对象,就是我犯的错误。
如果需要创建带有内容的StringBuffer对象,则可以使用:

StringBuffer s = new StringBuffer(“abc”);

这样初始化出的StringBuffer对象的内容就是字符串”abc”。
需要注意的是,StringBuffer和String属于不同的类型,也不能直接进行强制类型转换,下面的代码都是错误的:StringBuffer s = “abc”;赋值类型不匹配StringBuffer s = (StringBuffer)”abc”;不存在继承关系,无法进行强转
StringBuffer对象和String对象之间的互转的代码如下:

String s = “abc”;
StringBuffer sb1 = new StringBuffer(“123”);
StringBuffer sb2 = new StringBuffer(s); //String转换为StringBuffer
String s1 = sb1.toString(); //StringBuffer转换为String

2、StringBuffer的常用方法

append方法 (追加)

public StringBuffer append(boolean b)

该方法的作用是追加内容到当前StringBuffer对象的末尾,类似于字符串的连接。调用该方法以后,StringBuffer对象的内容也发生改变,例如:

StringBuffer sb = new StringBuffer(“abc”);
sb.append(true);```
则对象sb的值将变成”abctrue”。
使用该方法进行字符串的连接,将比String更加节约内容,例如应用于数据库SQL语句的连接,例如:

StringBuffer sb = new StringBuffer();
String user = “test”;
String pwd = “123”;
sb.append(“select * from userInfo where username=“)
.append(user)
.append(“ and pwd=”)
.append(pwd);
这样对象sb的值就是字符串“select * from userInfo where username=test and pwd=123”。

####insert方法    (插入)

public StringBuffer insert(int offset, boolean b)

该方法的作用是在StringBuffer对象中插入内容,然后形成新的字符串。例如:

StringBuffer sb = new StringBuffer(“javaString”);
sb.insert(4,false);
该示例代码的作用是在对象sb的索引值4的位置插入false值,形成新的字符串,则执行以后对象sb的值是”javafalseString”。

####delete方法   (删除)

public StringBuffer delete(int start,int end)

该方法的作用是删除指定位置中间的字符。例如:

StringBuffer sb = new StringBuffer(“javaString”);
sb.delete(2,4);
该示例代码的作用是在对象sb的索引值2的位置删除值,形成新的字符串,则执行以后对象sb的值是”jaString”。

####replace方法   (修改)

public StringBuffer replace(int start,int end,String str)

使用给定 String 中的字符替换此序列的子字符串中的字符。例如:

StringBuffer sb = new StringBuffer(“javaString”);
sb.replace(2,3,"SB");
该示例代码的作用是在对象sb的索引值2的位置替换值,形成新的字符串,则执行以后对象sb的值是”jaSBaString”。


####StringBuffer 转换成String
方式一

String string = sb.toString();

方式二

String string1 = new String(sb);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,631评论 18 399
  • 前言 真的懂String么?真的懂String里面的==与equals的差别么?我想说原来可能我懂,但是后来就没有...
    yzzCool阅读 3,926评论 0 3
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,188评论 19 139
  • java笔记第一天 == 和 equals ==比较的比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量...
    jmychou阅读 5,443评论 0 3
  • 2015年的雨水下的断断续续、没日没夜,整个县城也笼罩在阴沉的夜色中,我坐在街角的露天咖啡厅,仰望,一头雾水...
    朱颜改阅读 2,563评论 0 2

友情链接更多精彩内容