Java学习之StringBuffer类
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java学习之StringBuffer类,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4001字,纯文字阅读大概需要6分钟。
内容图文
【1】StringBuffer类概述:我们如果对字符串进行拼接操作,每次拼接都会构建一个新的String对象,耗时而且浪费空间
用StringBuffer就可以解决这个问题,即线程安全的可变字符序列。一个类似于String的字符串缓冲区。
【2】StringBuffer和String的区别:
String为字符串常量,一旦创建不可更改;适用于少量字符串操作的情况
StringBuffer为字符串变量,可更改;适用于多线程下在字符缓冲区进行大量操作的情况
【3】StringBuffer的构造方法:
A:无参构造 public StringBuffer();
B:指定容量的字符串缓冲区对象:public StringBuffer(int capacity);
C:指定字符串内容的字符串缓冲区对象:public StringBuffer(String str);
【4】StringBuffer的方法:
A:public int capacity():返回当前容量(理论值)
B:public int length();返回长度(字符数)(实际值)
public class csdntest1 {
public static void main(String[] args) {
String str="hello world";
StringBuffer str1=new StringBuffer("hello world");
StringBuffer str2=new StringBuffer(32);
System.out.println(str1);
System.out.println(str1.length());
System.out.println(str1.capacity());
System.out.println(str2.length());
System.out.println(str2.capacity());
}
}
结果如下:
capacity()方法返回的是理论当前容量值,而length值得是当前字符串缓冲数组里所存在的字符的数
【5】StringBuffer的添加功能
A:public StringBuffer append(String str);可以把任意类型的数据放到字符串缓冲数组里,返回的都是字符串缓冲数组本身
B:public StringBuffer insert(int offset,String str);在指定位置把任意类型的数据插到字符串缓冲数组里,返回字符串缓冲数组本身
public class csdntest1 {
public static void main(String[] args) {
String str="hello world";
StringBuffer str1=new StringBuffer("hello world");
StringBuffer str2=new StringBuffer(32);
System.out.println(str1);
System.out.println(str1.length());
System.out.println(str1.capacity());
System.out.println(str2.length());
System.out.println(str2.capacity());
System.out.println("---------------------------");
str2.append(2345);
System.out.println(str2);
str2.insert(3,"hello world");
System.out.println(str2);
}
}
还是在上一个代码的基础上测试这两个方法:结果如下:
【6】StringBuffer的删除功能:
A:public StringBuffer deleteChAt(int index);删除指定位置的字符,并返回本身
B:public StringBuffer delete(int start,int end);删除指定位置开始指定位置结合素的字符串,并返回本身
public class csdntest1 {
public static void main(String[] args) {
String str="hello world";
StringBuffer str1=new StringBuffer("hello world");
StringBuffer str2=new StringBuffer(32);
System.out.println(str1);
System.out.println(str1.length());
System.out.println(str1.capacity());
System.out.println(str2.length());
System.out.println(str2.capacity());
System.out.println("---------------------------");
str2.append(2345);
System.out.println(str2);
str2.insert(3,"hello world2222222222222");
System.out.println(str2);
System.out.println("----------------------------");
str1.deleteCharAt(4);
str2.delete(2,7);
System.out.println(str1);
System.out.println(str2);
}
}
结果如下:
【7】同样StringBuffer也具有其他的功能
替换:public StringBuffer replace(int start,int end,String str);从start开始到end之间的所有字符都用str替换,返回原字符串数组缓冲区
反转:public StringBuffer reverse();
截取:public String subString(int start);从指定位置截取到结束,返回的数据类型是字符串,不是字符缓冲数组
public String subString(int start,int end);截取从start到end之间的字符串,并返回类型是String
【8】StringBuffer和String的相互转换
A: String到StringBuffer转换:
1)构造方法:public StringBuffer(String str);
2)append()方法:上面有例子
B:StringBuffer到String转换:
1)使用subString()方法:如下所示,它返回的是String类型的字符串
public class csdntest1 {
public static void main(String[] args) {
StringBuffer str2=new StringBuffer("hello world");
String str3=str2.substring(4);
System.out.println(str3);
}
}
2)构造方法:上面也有例子
3)通过toString()方法:具体实现看上面的例子
【9】StringBuffer和StringBuilder 的区别
首先应该说的是StringBuilder类在Java5中被提出
A:StringBuffer和StringBuilder最大的区别就是StringBuffer是线程安全的,而StringBuilder不是线程安全的(也就是说不能同步访问)
B:但是StringBuilder相对于StringBuffer,它的速度优势更明显
内容总结
以上是互联网集市为您收集整理的Java学习之StringBuffer类全部内容,希望文章能够帮你解决Java学习之StringBuffer类所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。