为什么JAVA中String比StringBuffer效率高?

你可以看到它和String的区别,String主要用于拼接。该字符串是可变长度的字符串。

1,StringBuffer对象初始化

与String类的初始化不同,StringBuffer对象的初始化有Java提供的特殊语法,但通常是通过构造方法初始化的。

例如:

string buffer s = new string buffer();

以这种方式初始化的StringBuffer对象是一个空对象。

如果需要创建一个包含内容的StringBuffer对象,可以使用:

string buffer s = new string buffer(" ABC ");

这样初始化的StringBuffer对象的内容就是字符串“abc”。

需要注意的是,StringBuffer和String属于不同的类型,不能直接强制转换。以下代码都是错的:

StringBuffer s = " abc//赋值类型不匹配

string buffer s =(string buffer)" ABC ";//没有继承关系,无法进行强制转移。

StringBuffer对象和String对象之间相互转换的代码如下:

String s = " abc

string buffer sb 1 = new string buffer(" 123 ");

StringBuffer sb2 =新的string buffer;//字符串被转换为StringBuffer。

string s 1 = sb 1 . tostring();//StringBuffer转换为字符串

2.StringBuffer的常用方法

StringBuffer类中的方法主要是针对字符串的变化,比如添加、插入、删除,这也是StringBuffer和String类的主要区别。

A.附加方法

公共字符串缓冲区追加(布尔b)

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

string buffer sb = new string buffer(" ABC ");

sb.append(真);

对象sb的值会变成“abctrue”。

使用这种方法连接字符串会比string保存更多的内容,例如,它应用于数据库SQL语句的连接,如:

string buffer sb = new string buffer();

String user = " test

string pwd = " 123 ";

sb . append(" select * from userInfo where username = ")

。追加(用户)

。append(" and pwd= ")

。追加(pwd);

所以对象sb的值是字符串“select * from userinfo其中username = test,pwd = 123”。

B.删除字符方法

公共string buffer delete charat(int index)

这个方法的作用是删除指定位置的字符,然后将剩余的内容组成一个新的字符串。例如:

string buffer sb = new string buffer(" Test ");

某人(somebody的简写)delete charat(1);

这段代码的作用是删除string对象sb中索引值为1的字符,也就是删除第二个字符,剩下的内容组成一个新的字符串。对象sb的值就变成了“Tst”。

还有一个功能类似的删除方法:

公共字符串缓冲区删除(int start,int end)

该方法的作用是删除指定区间内的所有字符,包括有起始索引值和没有结束索引值的区间。例如:

string buffer sb = new string buffer(" test string ");

某人(somebody的简写)删除(1,4);

这段代码的作用是删除索引值1(含)到索引值4(不含)的所有字符,剩下的字符组成一个新的字符串。对象sb的值是“TString”。

C.插入方法

公共StringBuffer insert(int offset,boolean b)

这个方法的作用是将内容插入到StringBuffer对象中,然后形成一个新的字符串。例如:

string buffer sb = new string buffer(" test string ");

sb.insert(4,假);

这个示例代码的作用是在对象sb的索引值4处插入一个false值,形成一个新的字符串,然后执行后对象sb的值为“TestfalseString”。

D.反向方法

公共字符串缓冲反转()

这个方法的作用是反转StringBuffer对象的内容,然后形成一个新的字符串。例如:

string buffer sb = new string buffer(" ABC ");

sb . revert();

倒置后,物体sb中的内容会变成“cba”。

e、setCharAt方法

public void setCharAt(int index,char ch)

该方法的作用是将对象中索引值为索引位置的字符修改为新字符ch。例如:

string buffer sb = new string buffer(" ABC ");

sb.setCharAt(1,' D ');

对象sb的值会变成“aDc”。

F.trimToSize方法

公共void trimToSize()

这个方法的作用是将StringBuffer对象中的存储空间减少到与字符串长度相同的长度,从而减少空间的浪费。