StringBuffer、StringBuilder常用构造方法和常用方法


 StringBuffer和StringBuilder的区别:
     StringBuffer中的方法都有:synchronized关键字修饰,表示在多线程运行下是                安全的。
     StringBuilder中的方法都没有:synchronized关键字修饰,在多线程环境下运                 行不安全。
     即StringBuffer是线程安全的。
        StringBuilder是非线程安全的。
 

一、StringBuffer

1.常用构造方法

//1.StringBuffer() 
//构造一个没有字符的字符串缓冲区,初始容量为16个字符。
StringBuffer stringBuffer01 = new StringBuffer();
	
//2.StringBuffer(int capacity) 
//构造一个没有字符的字符串缓冲区和指定的初始容量。
StringBuffer stringBuffer02 = new StringBuffer(100);
		
//3.StringBuffer(String str) 
//构造一个初始化为指定字符串内容的字符串缓冲区。容量在此基础上加16。 
StringBuffer stringBuffer03 = new StringBuffer("hello,world");

在创建StringBuffer的时候尽可能给定一个初始化容量, 最好减少底层数组的扩容次数,预估计一下,给一个大一些的初始化容量以实现优化效果。

2.StringBuffer常用方法(注释方法前为返回值类型)

StringBuffer stringBuffer01 = new StringBuffer();
StringBuffer stringBuffer02 = new StringBuffer();

//1.StringBuffer append(String str) 
//将指定的字符串附加到此字符序列。(不一定是String类型,很多均可)
stringBuffer01.append("Hellojava"); //此时stringBuffer01的内容为"Hellojava"。
stringBuffer02.append(123456); //此时stringBuffer02的内容为"123456"。

//2.int capacity() 
//返回当前容量。
System.out.println(stringBuffer01.capacity()); //输出为16

//3.char charAt(int index) 
//返回 char在指定索引在这个序列值。 
System.out.println(stringBuffer01.charAt(0)); //输出"H"

//4.StringBuffer delete(int start, int end) 
//删除此序列的子字符串中的字符。 区间前闭后开。
System.out.println(stringBuffer02.delete(0, 2));//此时stringBuffer02为"3456"

//5.StringBuffer deleteCharAt(int index) 
//删除 char在这个序列中的指定位置。 
System.out.println(stringBuffer02.deleteCharAt(0)); //此时stringBuffer02为456

//6.int indexOf(String str) 
//返回指定子字符串第一次出现的字符串内的索引。
System.out.println(stringBuffer01.indexOf("java"));//输出为5

//7.StringBuffer insert(int offset, String str) 
//将字符串插入到此字符序列中。  
System.out.println(stringBuffer02.insert(0, "123"));//此时stringBuffer02为123456

//8.int lastIndexOf(String str) 
//返回指定子字符串最右边出现的字符串内的索引。
StringBuffer stringBuffer03 = new StringBuffer("12345123");
System.out.println(stringBuffer03);
System.out.println(stringBuffer03.lastIndexOf("123")); //输出5

//9.int length() 
//返回长度(字符数)。 
System.out.println(stringBuffer03.length()); //输出为8

//10.StringBuffer replace(int start, int end, String str) 
//用指定的String中的字符替换此序列的子字符串中的 String。(前闭后开)
System.out.println(stringBuffer03.replace(5,8,"6789")); //此时stringBuffer03为"123456789"

//11.StringBuffer reverse() 
//导致该字符序列被序列的相反代替。 
System.out.println(stringBuffer03.reverse()); //此时stringBuffer03为987654321

//12.void setCharAt(int index, char ch) 
//指定索引处的字符设置为 ch 。 
stringBuffer03.setCharAt(0, 'x');
System.out.println(stringBuffer03); //此时stringBuffer03为"x87654321"

//13.void setLength(int newLength) 
//设置字符序列的长度。 
stringBuffer03.setLength(14);

//14.String substring(int start) 
//返回一个新的 String ,其中包含此字符序列中当前包含的字符的子序列。 
System.out.println(stringBuffer03.substring(4)); //输出"54321"

//15.String substring(int start, int end) 
//返回一个新的 String ,其中包含此序列中当前包含的字符的子序列。(前闭后开) 
System.out.println(stringBuffer03.substring(4,7)); //输出"543"

//16.String toString() 
//返回表示此顺序中的数据的字符串。 
String s = stringBuffer03.toString();
System.out.println(s); //s为"x87654321"

二、StringBuilder的构造方法。

//1.StringBuilder() 
//构造一个没有字符的字符串构建器,初始容量为16个字符。 
StringBuilder stringBuilder01 = new StringBuilder();
		
//2.StringBuilder(int capacity) 
//构造一个没有字符的字符串构建器,由 capacity参数指定的初始容量。
StringBuilder stringBuilder02 = new StringBuilder(100);
		
//3.StringBuilder(String str) 
//构造一个初始化为指定字符串内容的字符串构建器。容量在此基础上加16。 
StringBuilder stringBuilder03= new StringBuilder("hello,world");

StringBuilder常用方法与StringBuffer大致相同。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值