Java常用对象API——StringBuffer,StringBuilder

StringBuffer对象

StringBuffer就是字符串缓冲区,是用于存储数据的容器。
特点:
1,长度是可变的。
2,可以存储不同类型数据。
3,最终要转成字符串进行使用。
4,可以对字符串进行修改。

既然是一个容器对象,应该具备以下的功能:
1,添加:
StringBuffer append(data);
StringBuffer insert(index,data);

      public static void bufferMethodDemo(){
    	//创建缓冲区对象。
    	StringBuffer sb = new StringBuffer();
    	
    	sb.append(4).append(false);//.append("haha");
    	sb.insert(1, "haha");
    
    	
    	System.out.println(sb);
    	
    }

输出结果在这里插入图片描述

    private static void bufferMethodDemo_1() {
    		StringBuffer sb = new StringBuffer("abce");
    		
    //		sb.append("xixi");
    		sb.insert(2, "qq");
    		
    		System.out.println(sb.toString());
    	}

输出结果在这里插入图片描述
2,删除:
StringBuffer delete(start,end):包含头,不包含尾。
StringBuffer deleteCharAt(int index):删除指定位置的元素

3,查找:
char charAt(index);
int indexOf(string);
int lastIndexOf(string);

4,修改:
StringBuffer replace(start,end,string);
void setCharAt(index,char);

增删改查 C(create)U(update)R(read)D(delete)

    	private static void bufferMethodDemo_2() {
    		StringBuffer sb = new StringBuffer("abce");
    		
    //		sb.delete(1, 3);//ae
    		
    		
    //		sb.delete(0,sb.length());//清空缓冲区。
    //		sb = new StringBuffer();//清空缓冲区。
    		
    //		sb.replace(1, 3, "nba");
    //		sb.setCharAt(2, 'q');
    		
    //		sb.setLength(10);
    		
    //		System.out.println("sb:"+sb);
    //		System.out.println("len:"+sb.length());
    		
    		System.out.println(sb.reverse());//反转
    		
    		
    	}

StringBuilder对象

jdk1.5以后出现了功能和StringBuffer一模一样的对象。就是StringBuilder

不同的是:
StringBuffer是线程同步的。通常用于多线程。
StringBuilder是线程不同步的。通常用于单线程。 它的出现提高效率。

jdk升级通常是为了:
1,简化书写。
2,提高效率。
3,增加安全性。

小例子:将一个int数组变成字符串。

下面给出两种方法:
法1是通常的字符串连接,但是每连接一次就会在字符串常量池中创建一个新的字符串。
法2用到了StringBuilder(字符串缓冲区),使用append方法后依次将数组添加进缓冲区后,再使用.toString方法一次性读取。

     public class StringBuilderTest {
    
    
    	public static void main(String[] args) {
    
    		int[] arr = {3,1,5,3,8};
    		String s = arrayToString_2(arr);
    		
    		System.out.println(s);
    	}
    	public static String arrayToString_2(int[] arr){
    		
    		StringBuilder sb = new StringBuilder();
    		sb.append("[");
    		for (int i = 0; i < arr.length; i++) {
    			if(i!=arr.length-1)
    				sb.append(arr[i]+", ");
    			else
    				sb.append(arr[i]+"]");
    		}
    		return sb.toString();
    	}
    	
    	/**
    	 * 将一个int数组变成字符串。
    	 */
    	public static String arrayToString(int[] arr){
    		
    		String str = "[";
    		for (int i = 0; i < arr.length; i++) {
    			if(i!=arr.length-1)
    				str+=arr[i]+", ";
    			else
    				str+=arr[i]+"]";
    		}
    		
    		return str;
    	}
    
     }

你可能感兴趣的:(JavaSE)