常用类--StringBuffer类--StringBuffer类的成员方法

StringBuffer类的成员方法

程序示例

  • 添加功能 

/*
        StringBuffer:
            添加功能
                public StringBuffer append(String str)
                    观察API发现,不光可以追加字符串类型,可以将任意数据类型添加到
                    字符串缓冲区中,返回的是什么呢?返回的是字符串缓冲区本身
                    
                public StringBuffer insert(int offset,String str)
                    将字符串插入到此字符序列中。返回的是字符串缓冲区本身
                    String参数的String按顺序插入到指定偏移量的该序列中,
                    向上移动原始位于该位置的任何字符,并将该序列的长度增加到参数的长
                    如果str是null ,则四个字符"null"被插入到该序列中。
*/
public class StringBufferDemo2 {
    public static void main(String[] args) {
        //创建一个StringBuffer对象
        StringBuffer sb = new StringBuffer();
       
        System.out.println("**************************************");
      
        //public StringBuffer append(String str)
        StringBuffer stringBuffer = sb.append("hello");
        System.out.println(stringBuffer);//hello
        System.out.println(sb);//hello
        //比较两者的地址值
        System.out.println(stringBuffer==sb);//true
        //所以返回的是字符串缓冲区本身

//        sb.append(10);
//        sb.append('a');
//        sb.append(true);
//        sb.append(12.34);
//        System.out.println(sb); //hello10atrue12.34
        //无论插入的是什么类型,在字符串缓冲区中都转换为了字符类型进行拼接
//        System.out.println(stringBuffer); //hello10atrue12.34

        //链式编程
        sb.append(10).append('a').append(true).append(12.34);
        System.out.println(sb);//hello10atrue12.34
      
        System.out.println("**************************************");

        //public StringBuffer insert(int index,String str)
        //将字符串插入到此字符序列中。返回的是字符串缓冲区本身
        //String参数的String按顺序插入到指定偏移量的该序列中,
        //向上移动原始位于该位置的任何字符,并将该序列的长度增加到参数的长
        //如果str是null ,则四个字符"null"被插入到该序列中。
      
      //现在我想在o和1之间插入一个hadoop
        sb.insert(4,"hadoop");
        System.out.println(sb);//hellhadoopo10atrue12.34
      //那个位置的字符变了,就从哪里插入。
        sb.insert(5,"hadoop");
        System.out.println(sb);//hellohadoop10atrue12.34
      //无论插入的是什么类型,在字符串缓冲区中都转换为了字符类型进行拼接
        Object s = null;
        sb.insert(5,s);
        System.out.println(sb);//hellonullhadoop10atrue12.34
    }
}
  • 删除功能

/*
    日后开发中常见的删除:remove,move,delete,drop,truncate(后三个数据库中常见)
    StringBuffer:
        删除功能
            public StringBuffer deleteCharAt(int index)
                删除char在这个序列中的指定位置。 该序列缩短了一个char 。
                
            public StringBuffer delete(int start,int end) [start,end)
                删除此序列的子字符串中的字符。
                子串开始于指定start并延伸到字符索引end - 1 ,
                或如果没有这样的字符存在的序列的结束。
                如果start等于end ,则不作任何更改。
*/

public class StringBufferDemo3 {
    public static void main(String[] args) {
        StringBuffer sb = new StringBuffer("bigdata");
      
//      public StringBuffer deleteCharAt(int index)
//      删除char在这个序列中的指定位置。 该序列缩短了一个char 。      
        sb.deleteCharAt(3);
        System.out.println("未删除字符之前:"+sb);//bigdata
//      返回的是字符串缓冲区本身
        System.out.println("删除字符之后:"+sb);//bigata
//      如果 index为负数或大于或等于 length() ,报错
//      sb.deleteCharAt(15);

        System.out.println("***********************************************");
      
        //public StringBuffer delete(int start,int end) [start,end)
        //删除此序列的子字符串中的字符。
        // 子串开始于指定start并延伸到字符索引end - 1 ,
        // 或如果没有这样的字符存在的序列的结束。
        // 如果start等于end ,则不作任何更改。        
//        sb.delete(2,5);//bia
//        sb.delete(2,6);//bi
//        System.out.println(sb);

        //删除所有的字符
        sb.delete(0,sb.length());
        System.out.println("删除所有的字符sb: "+sb);
    }
}
  • 替换功能 

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

            用指定的String中的字符替换此序列的子字符串中的String 。
            子串开始于指定start并延伸到字符索引end - 1 ,
            或如果没有这样的字符存在的序列的结束。
            第一子串中的字符被去除,然后指定String被插入在start 。
*/

public class StringBufferDemo4 {
    public static void main(String[] args) {
        //创建一个StringBuffer对象
        StringBuffer sb = new StringBuffer();

        //往StringBuffer中添加内容
        sb.append("hello").append("world").append("mysql").append("hadoop").append("hive");
        System.out.println(sb);//helloworldmysqlhadoophive
	
        System.out.println("******************************************************************"); 
      
        //public StringBuffer replace(int start,int end,String str)
        //含头不含尾 ---- [start,end)
        sb.replace(5,10,"好好学习,天天向上");
        System.out.println(sb);
    }
}
  • 反转功能

/*
    StringBuffer:
        反转功能	 
        public StringBuffer reverse()
        导致该字符序列被序列的相反代替。
        如果序列中包含任何替代对,则将它们视为单个字符进行反向操作
*/

public class StringBufferDemo5 {
    public static void main(String[] args) {
        StringBuffer sb = new StringBuffer();
        sb.append("好好学习");
        System.out.println("反转前:");
        System.out.println(sb);//好好学习

        System.out.println("反转后:");
        StringBuffer reverse = sb.reverse();
        System.out.println(sb);//习学好好
        System.out.println(reverse);//习学好好
    }
}
  • 截取功能 

/*
        StringBuffer:
            截取功能
             String substring(int start)
                返回一个新的 String ,其中包含此字符序列中当前包含的字符的子序列。
             String substring(int start, int end)
                返回一个新的 String ,其中包含此序列中当前包含的字符的子序列。
*/
public class StringBufferDemo6 {
    public static void main(String[] args) {
        StringBuffer sb = new StringBuffer();
        sb.append("java")
                .append("hadoop")
                .append("hive")
                .append("ETL")
                .append("spark")
                .append("flink");

        System.out.println(sb);//javahadoophiveETLsparkflink
      
        //String substring(int start)
        //哪个字符开始变化start就取那个字符的下标索引
        String s1 = sb.substring(4);
        System.out.println("截取出来的字符串是:" + s1);//hadoophiveETLsparkflink
        System.out.println("StringBuffer的内容为:" + sb);//javahadoophiveETLsparkflink
        //做截取操作之后,原先的sb并没有变化,就相当于截取了一个String类型的副本出来

        System.out.println("**********************************************************************");
        //String substring(int start, int end)  含头不含尾的 [start,end)
        String s2 = sb.substring(10, 17);
        System.out.println("截取出来的字符串是:" + s2);//hiveETL
        System.out.println("StringBuffer的内容为:" + sb);//javahadoophiveETLsparkflink
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值