java基础

java中StringBuffer

2019-03-11  本文已影响0人  小漫画ing

StringBuffer类的概述

StringBuffer和String的区别

构造方法

public StringBuffer:无参构造;
public StringBuffer(int capacity):指定容量的字符串缓冲区对象;
public StringBuffer(String str):指定字符串内容的字符串缓冲区对象;

package com.manman.cn;
import java.lang.StringBuffer;
public class StringBufferDemo {
    public static void main(String[] args) {
        //public StringBuffer:无参构造;
        StringBuffer sb=new StringBuffer();
        System.out.println("sb:"+sb);
        System.out.println("sb:"+sb.capacity());
        System.out.println("sb:"+sb.length());
        System.out.println("----");
        //public StringBuffer(int capacity):指定容量的字符串缓冲区对象;
        StringBuffer sb1=new StringBuffer(50);
        System.out.println("sb1:"+sb1);
        System.out.println("sb:"+sb1.capacity());
        System.out.println("sb:"+sb1.length());
        System.out.println("----");
        //public StringBuffer(String str):指定字符串内容的字符串缓冲区对象;
        StringBuffer sb2=new StringBuffer("hello");
        System.out.println("sb2:"+sb2);
        System.out.println("sb2:"+sb2.capacity());
        System.out.println("sb2:"+sb2.length());
        System.out.println("----");
    }
}

StringBuffer类的成员方法

package com.manman.cn;
/*
 * StringBuffer的添加功能
 * public StringBuffer append(String str):
 * 可以把任意类型添加到字符缓冲区里面,并返回缓冲区本身;
 */
public class StringBufferDemo1 {
    public static void main(String[] args) {
        //创建字符串的缓冲区对象
        StringBuffer sBuffer=new StringBuffer();
        sBuffer.append("hello");
        System.out.println(sBuffer);
    }
}


可以继续在下面添加:

        sBuffer.append("hello");
        sBuffer.append(true);
        sBuffer.append(12);
        sBuffer.append(12.2);
        System.out.println(sBuffer);

也可以下面这样:

sBuffer.append("hello").append(true).append(12).append(12.2);

和上面的结果是一样的;
2、public StringBuffer insert(int offset,String str):在指定位置把任意类型的数据插入到字符串缓冲区里面;

sBuffer.insert(2, "World");
package com.manman.cn;

public class StringBuffer2 {
    public static void main(String[] args) {
        ///创建对象
        StringBuffer string=new StringBuffer();
        //添加功能
        string.append("hello").append(true).append(12);
        System.out.println(string);
        //删除功能
        string.deleteCharAt(2);
        System.out.println(string);
        string.delete(1, 4);//包含前面,不包含后面
        System.out.println(string);
    }
}

package com.manman.cn;

public class StringBufferDemo2 {
    public static void main(String[] args) {
        //创建字符串缓冲区
        StringBuffer sb=new StringBuffer();
        //添加数据
        sb.append("hello").append("world").append("java");
        System.out.println("替换之前:"+sb);
        /*
         * 需求就是把world这个数据替换为“节日快乐”
         */
        sb.replace(5, 10, "节日快乐");
        System.out.println("替换之后"+sb);
    }
}

package com.manman.cn;

public class StringBufferDemo3 {
    public static void main(String[] args) {
        StringBuffer sb=new StringBuffer();
        sb.append("林青霞").append("我爱你");
        System.out.println("反转之前:"+sb);
        sb.reverse();
        System.out.println("反转之后:"+sb);
    }
}

package com.manman.cn;

public class StringBufferDemo4 {
    public static void main(String[] args) {
        StringBuffer sb=new StringBuffer();
        //添加元素
        sb.append("hello").append("world").append("java");
        //截取功能
        String s=sb.substring(5);
        System.out.println("添加的元素:"+sb);
        System.out.println("截取后的元素:"+s);
        System.out.println("-------------");
        String s1=sb.substring(5, 10);
        System.out.println("从start开始到end的截取:"+s1);
    }
}

练习:

1、转换(String和StringBuffer之间)

package com.manman.cn;
/*
 * 不能把字符串的值直接赋给StringBuffer,
 * 只能通过构造方法StringBuffer sb=new StringBuffer();
 * 赋值:(1)StringBuffer sb=new StringBuffer(5);
 *           (2)StringBuffer sb=new StringBuffer();
 *         sb.append()的方法
 */
public class StringBufferDemo5 {
    public static void main(String[] args) {
        StringBuffer sb=new StringBuffer("java");
        //方式一:
        String str=new String(sb);
        //方式二
        String str1=sb.toString();
        System.out.println("转换字符串str:"+str);
        System.out.println("转换字符串str1:"+str1);
    }
}


2、把数组拼接成一个字符串

package com.manman.cn;
/*
 * 把数组拼接成一个字符串
 */
public class StringBufferDemo7 {
    public static void main(String[] args) {
        //定义一个数组
        int [] arr={44,33,22,11};
        //定义功能
        //方式1:用String做拼接的方式
        String s1=arrayToString(arr);
        System.out.println(s1);
        //用StringBuffer做拼接的方式
        String s2=arrayToString2(arr);
        System.out.println(s2);
        
    } 
    //用StringBuffer做拼接的方式
    public static String arrayToString2(int[] arr){
        StringBuffer sb=new StringBuffer();
        sb.append("[");
        for(int x=0;x<arr.length;x++){
            if(x==arr.length-1){
                sb.append(arr[x]);
            }else {
                sb.append(arr[x]);
                sb.append(",");
            }
            
        }
        sb.append("]");
        return sb.toString();//转换成String类型
    }
    //用String做拼接的方式
    public static String arrayToString(int[] arr){
        String s="";
        s+="[";
        for(int x=0;x<arr.length;x++){
            if(x==arr.length-1){
                s+=arr[x];
            }else {
                s+=arr[x];
                s+=",";
            }
            
        }
        s+="]";
        return s;
    }
}

上一篇下一篇

猜你喜欢

热点阅读