StringBuffer的常用功能

StringBuffer:字符串缓冲区 ----类似于String,但是不一样 (可变的字符序列)

  • 线程安全

    线程依赖于进程存在!进程,能够被系统资源调用的独立单位
    一个进程可以有多个线程,每一个线程-----"执行单元"(任务)
    
  • 线程安全-----同步的-----执行效率低

    举例:
            银行类的网站/医疗网站
            ATM机取钱---插卡---输入密码---查询余额---取钱
    StringBuilder:和StringBuffer具有相互兼容的API,它是线程不安全的类----不同步----执行效率高
    

添加功能:

append(任何类型) :将内容追加到字符串缓冲区中 (在字符串缓冲区的最后一个字符序列的末尾追加) 返回值是字符串缓冲区本身.

public StringBuffer insert(int offset,String str):插入:在指定位置处插入指定的内容

public class StringBufferDemo {
    public static void main(String[] args) {
        //创建一个字符串缓冲区对象
        StringBuffer sb = new StringBuffer() ;
        //StringBuffer  append(任何类型)
       sb.append("hello").append("world").append(100).append('a').append(12.34) ;
        System.out.println("sb:"+sb);
 
        System.out.println("----------------------------------");
  
        //public StringBuffer insert(int offset,String str)
        //插入
        sb.insert(5,"高圆圆") ;
        System.out.println("sb:"+sb);
    }
}

删除功能

public StringBuffer deleteCharAt(int index):删除指定索引处的缓冲区的字符序列,返回字符串缓冲区本身

public StringBuffer delete(int start,int end):删除从指定位置到指定位置结束的字符序列(包含end-1处的字符),返回字符串缓冲区本身
		[start,end-1]
public class StringBufferDemo2 {
    public static void main(String[] args) {
 
        //创建一个StringBuffer对象 (默认初始容量16)
        StringBuffer buffer = new StringBuffer() ;
        buffer.append("hello").append("world").append("Javaee") ;
        System.out.println(buffer);
 
        System.out.println("---------------------------");
 
        System.out.println("delete():"+buffer.delete(5,10));//5-9
 
    }
}

类型的相互转换(重点)

开发中:
(1)本身A类型,由于需要使用B类型的功能,所以 A类型---->B类型
(2)A类型,需要使用B类型的功能,A--->B类型,使用完功能之后,又可能结果又需要A类型,

    B类型---->A类型

String---->StringBuffer

StringBuffer---->String

StringBuffer的特有功能

public StringBuffer reverse(),反转之后,返回的是字符串缓冲区本身
键盘录入一个字符串,将字符串进行反转

public class StringBufferDemo4 {
 
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in) ;
 
        System.out.println("请您输入一个字符串:");
        String line = sc.nextLine() 
        StringBuffer sb = new StringBuffer(line) ;
        String result = sb.reverse().toString();
        System.out.println(result);
 
    }
}

使用功能改进

public class StringBufferDemo4 {
 
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in) ;
        System.out.println("请您输入一个字符串:");
        String line = sc.nextLine() ;
 
        //调用功能
        String result2 = reverse(line);
        System.out.println(result2);
 
    }
 
    /**
     * reverse反转功能
     * @param s   将指定的字符串反转
     * @return  返回结果字符串
     */
    public static String reverse(String s){
 
      
        //方式1:s---->StringBuffer类型---->有参构造
        StringBuffer buffer = new StringBuffer(s) ;
        return buffer.reverse().toString() ;
 
        //方式2:append()+空参构造方法
        /*StringBuffer buffer = new StringBuffer() ;
        String result = buffer.append(s).reverse().toString();
        return result ;*/
        
        //方式三:匿名对象
        //return new StringBuffer().append(s).reverse().toString() ;
 
    } 
}

StringBuffer的截取功能

1.public String substring(int start):从指定位置开始,默认截取到末尾,返回值是新的字符串
2.public String substring(int start,int end):从指定位置开始到指定end-1结束进行截取,返回的新的字符串
public class StringBufferDemo5 {
    public static void main(String[] args) {
 
        StringBuffer sb = new StringBuffer() ;
        sb.append("hello").append("world").append("javaee").append("anroid") ;
        System.out.println("sb:"+sb);
        System.out.println(sb.substring(5));//subString(xx)---->截取的新的字符串
        System.out.println("sb:"+sb);
        System.out.println(sb.substring(5,10));//end-1位置

StringBuffer的替换功能

 public StringBuffer replace(int start, 起始索引
                                         int end, 结束索引(end-1)

                                         String str) 替换的内容
public class StringBufferDemo5 {
    public static void main(String[] args) {
 
        StringBuffer sb = new StringBuffer() ;
        sb.append("hello").append("world").append("javaee").append("anroid") ;
        System.out.println("sb:"+sb);
        System.out.println(sb.replace(5,10,"高圆圆"));
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值