StringBuffer

StringBuffer

定义:线程安全的可变序列

方法:

  1. 构造方法
    1. public StringBuffer():构造一个不带字符串的缓冲区,其初始容量为16个字符;
    2. public StringBuffer(int capacity):构造一个不带字符串但具有初始容量的缓冲区;
    3. public StringBuffer(String str):构造一个字符串并将初始内容初始化为指定的字符串,该字符串的长度为16加上字符串参数的长度
  2. 基本功能
    1. 获取功能
      1. public int capacity():返回当前容量,容量指可用于最新插入的字符的存储量,超过这一容量就需要重新分配;
      2. public int length():返回长度(及返回字符数);
    2. 添加功能
      1. public StringBuffer append(XXX 变量名):

将指定的内容追加到序列末尾,返回一个StringBuffer本身;

(XXX可以是boolean类型 ,char类型,char[]类型,CharSequence类型,double类型,float类型,int类型,long类型,Object类型,String类型,StringBuffer类型,返回值都是StringBuffer)

      1. public StringBuffer insert(int index,XXX 变量名):

在指定位置插入一个指定内容,返回字符串缓冲区本身

(XXX可以是boolean类型,char类型,char[]类型,CharSequence类型,double类型,float类型,int类型,long类型,Object类型,String类型,StringBuffer类型,返回值都是StringBuffer)

    1. 删除功能
      1. public StringBuffer delete(int start,in end):

从字符串中移除从索引start到end对应的值(左包右不包);

      1. public StringBuffer deleteCharAt(int index):

移除指定位置处的字符

    1. 替换功能
      1. public StringBuffer replace(int start,int end,String str):

从指定位置开始到指定位置结束,用给定的字符串替换字符内容(包左不包右)

    1. 反转功能:
      1. public StringBuffer reverse():

将此字符序列用其反转形式取代,返回该StringBuffer

    1. 截取功能:
      1. public String substring(int index):

从参数索引处开始截取一直到末尾结束,返回一个String类型的字符串;

      1. public String substring(int index,int end):

从index处开始截取一直到end处结束,返回一个String类型的字符串(包左不包右)

 

 

 

 

 

补充

1.什么是线程安全什么是线程不安全?

线程安全--->同步--->执行效率低

举例:银行的网站

线程不安全--->不同步---执行效率高(单线程中使用StringBulider代替stringBuffer)

举例:论坛网站

线程安全和执行效率在多线程考虑

2.StringBuffer(容器)和String的区别?

前者是线程安全的类,可变的字符序列,内存中提供字符串缓冲区;后者是不可变的字符序列

从内存角度考虑:前者优于后者,因为String类会在方法区中开辟空间--->占内存;而StringBuffer里面存在初始容量,在里面不断追加字符串即可(方法为append)

3.String与StringBuffer之间的相互转化?

(1)为什么要学习类与类之间的转换?

举例:B类-->A类

有时候我们需要使用A类的一些功能

A类-->B类

有时候我们需要使用B类的一些功能

(2)String--->StringBuffer:

a.使用构造方法:

StringBuffer sb=new StringBuffer(String str)

b.使用无参构造+append方法:

StringBuffer sb=new StringBuffer()

sb.append(String str)

 

(3)StringBuffer--->String:

a.使用构造方法:

String str=new String(StringBuffer buffer)

b.StringBuffer中的toString方法:

public String toString()

返回此序列中字符串表现形式

练习

  1. 将数组拼接成一个字符串{11,22,33,44,55}===>[11,22,33,44,55]

public static StringBuffer method(int[] arr){

StringBuffer sb1=new StringBuffer();

sb1.append("[");

for (int i = 0; i < arr.length; i++) {

if (i==arr.length-1) {

sb1.append(arr[i]);

sb1.append("]");

}else {

sb1.append(arr[i]); sb1.append(",");

}

}

return sb1;

}

  1. 判断字符串是否是对称字符?

(aba  123321)

猜用假设法,假设这个字符是对称字符返回true

方法一:

public static boolean method1(String str){

boolean flag=true;

for (int i = 0; i < str.length()/2; i++) {

if (str.charAt(i)==str.charAt(str.length()-1-i)) {}

else {

System.out.println("这不是对称字符串");

}

}

return flag;}

方法二:

public static boolean method2(String str){

boolean flag=true;

for(int start=0,end=str.length()-1;start<=end;start++,end--){

if (str.charAt(start)==str.charAt(end)) { }

else {

return flag=false;

}

}

return true;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值