问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

string和stringbuffer类的区别

发布网友 发布时间:2022-03-23 00:09

我来回答

2个回答

懂视网 时间:2022-03-23 04:30

string和buffer的主要区别是:

      String而是一个类,它被用来表示字符序列,其字符本身符合 Unicode 标准,初始化方式有两种。而StringBuffer是一个具有对象引用传递特点的字符串对象,可以调用其方法动态的进行增加、插入、修改和删除操作,且不用像数组那样事先指定大小,从而实现多次插入字符,一次整体取出的效果,因而操作字符串非常灵活方便。

  

热心网友 时间:2022-03-23 01:38

String与StringBuffer的区别
简单地说,就是一个变量和常量的关系。StringBuffer对象的内容可以修改;而String对象一旦产生后就不可以被修改,重新赋值其实是两个对象。
StringBuffer
的内部实现方式和String不同,StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。所以在实际使用
时,如果经常需要对一个字符串进行修改,例如插入、删除等操作,使用StringBuffer要更加适合一些。
String:在String类中没有用来改变已有字符串中的某个字符的方法,由于不能改变一个java字符串中的某个单独字符,所以在JDK文档中称String类的对象是不可改变的。然而,不可改变的字符串具有一个很大的优点:编译器可以把字符串设为共享的。
StringBuffer:StringBuffer
类属于一种辅助类,可预先分配指定长度的内存块建立一个字符串缓冲区。这样使用StringBuffer类的append方法追加字符 比
String使用 + 操作符添加字符 到 一个已经存在的字符串后面有效率得多。因为使用 +
操作符每一次将字符添加到一个字符串中去时,字符串对象都需要寻找一个新的内存空间来容纳更大的字符串,这无凝是一个非常消耗时间的操作。添加多个字符也
就意味着要一次又一次的对字符串重新分配内存。使用StringBuffer类就避免了这个问题。
StringBuffer是线程安全的,在多线程程序中也可以很方便的进行使用,但是程序的执行效率相对来说就要稍微慢一些。
StringBuffer的常用方法
StringBuffer类中的方法要偏重于对字符串的变化例如追加、插入和删除等,这个也是StringBuffer和String类的主要区别。
1、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”。
2、deleteCharAt方法
public StringBuffer deleteCharAt(int index)
该方法的作用是删除指定位置的字符,然后将剩余的内容形成新的字符串。例如:
StringBuffer sb = new StringBuffer(“Test”);
sb. deleteCharAt(1);
该代码的作用删除字符串对象sb中索引值为1的字符,也就是删除第二个字符,剩余的内容组成一个新的字符串。所以对象sb的值变为”Tst”。
还存在一个功能类似的delete方法:
public StringBuffer delete(int start,int end)
该方法的作用是删除指定区间以内的所有字符,包含start,不包含end索引值的区间。例如:
StringBuffer sb = new StringBuffer(“TestString”);
sb. delete (1,4);
该代码的作用是删除索引值1(包括)到索引值4(不包括)之间的所有字符,剩余的字符形成新的字符串。则对象sb的值是”TString”。
3、insert方法
public StringBuffer insert(int offset, String s)
该方法的作用是在StringBuffer对象中插入内容,然后形成新的字符串。例如:
StringBuffer sb = new StringBuffer(“TestString”);
sb.insert(4,“false”);
该示例代码的作用是在对象sb的索引值4的位置插入字符串false,形成新的字符串,则执行以后对象sb的值是”TestfalseString”。
4、reverse方法
public StringBuffer reverse()
该方法的作用是将StringBuffer对象中的内容反转,然后形成新的字符串。例如:
StringBuffer sb = new StringBuffer(“abc”);
sb.reverse();
经过反转以后,对象sb中的内容将变为”cba”。
5、setCharAt方法
public void setCharAt(int index, char ch)
该方法的作用是修改对象中索引值为index位置的字符为新的字符ch。例如:
StringBuffer sb = new StringBuffer(“abc”);
sb.setCharAt(1,’D’);
则对象sb的值将变成”aDc”。
6、trimToSize方法
public void trimToSize()
该方法的作用是将StringBuffer对象的中存储空间缩小到和字符串长度一样的长度,减少空间的浪费。
7、构造方法:
StringBuffer s0=new StringBuffer();分配了长16字节的字符缓冲区
StringBuffer s1=new StringBuffer(512);分配了512字节的字符缓冲区
8、获取字符串的长度: length()
StringBuffer s = new StringBuffer("www");
int i=s.length();
m.返回字符串的一部分值
substring(int start) //返回从start下标开始以后的字符串
substring(int start,int end) //返回从start到 end-1字符串
9.替换字符串
replace(int start,int end,String str)
s.replace(0,1,"qqq");
10.转换为不变字符串:toString()。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
刚买了个 iphone3G 一更新麻烦了出现了错误1014 而且手机什么都没有了... Dell vostro 1014新机怎样分区? macosv1014以上版本怎么更新 江苏智能锁种类 陕西有那些换锁哪家省钱 有必要买大牌的智能门锁吗? 陕西口碑好指纹锁哪家省钱 如何设置excel每页打印表头 excel打印多页表格时怎么设置每页都有表头 我的笔记本是DV4现在进不去系统, winpe识别不了硬盘 bios找不到... string和stringbuffer有什么区别 string 和stringbuffer的区别 String和StringBuffer有什么区别啊? String类和StringBuffer类的区别 String 和StringBuffer的区别是什么? 红米手机任何导航怎么总是提醒GPS信号弱 小米手机使用导航的时候总是提示GPS信号弱,自身的定位位置不同步,但是下载东西很快,网速没有问题, 滴滴车主小米手机导航GPS信号弱怎么办? 你好,我的小米手机导航时总是提示jps信号弱,导航跟不上 手机GpS定位信号弱怎么解决 小米10手机GPS信号弱怎么解觉? 小米9GPS定位慢是什么原因? 小米手机为什么gps定位信号弱 小米11pro导航GPS信号弱是怎么回事,怎么解决? 小米手机导航信号弱怎么回事? 小米9pro顶配,高速路上经常提示信号弱? 为什么小米手机总提示gps信号弱 小米手机GPS信号弱 陌陌的快聊怎么创建约会房间 陌陌是干嘛的 String 与StringBuffer的区别? 请说详细点,最好用内存分析解释 string和stringbuffer和stringbuilder的区别 String和StringBuffer有什么区别? string和stringbuffer stringbuilder的区别 String、StringBuffer和StringBuilder的区别是什么? String,StringBuffer和StringBuilder的区别 string 和stringbuilder,stringbuffer 的区别 Java中String,StringBuilder和StringBuffer的区别 JAVA中StringBuffer与StringBuilder、String的区别是什么? java中String和StringBuffered有什么区别? “String、StringBuffer和StringBuilder”之间的区别是什么? 手机无网络怎么办 手机没有网络怎么恢复 手机无法上网了怎么办? 手机没有网络怎么办 手机有信号没网络怎么办 手机没网络怎么回事? 手机突然没网络了怎么办 没有网怎么办 手机上不了网怎么回事