首頁 > IT教程 > 正文

StringBuffer的基本使用

2020-01-01 10:34:08 來源:金橙教程網 作者:admin8 瀏覽:87次 「手機版」

stringbuffer

StringBuffer的基本使用示例:

package com.igeek02;
/*
 * StringBuffer:底層維護了一個字符數組
 * 線程安全的可變字符序列。一個類似于 String 的字符串緩沖區
 * 可以通過某些方法調用可以改變該序列的長度和內容。
 * StringBuffer 上的主要操作是 append 和 insert 方法,可重載這些方法,以接受任意類型的數據。
 *
 *
 * String:不可變的字符串緩沖區,字符串是常量,一旦定義不能更改
 * StringBuffer 可變的字符串緩沖區  JDK1.0   線程安全的(java使用使用同步機制保證線程安全),效率低
 * StringBuilder  可變的字符串緩沖區 JDK1.5  線程不安全的,效率高
 * 
 * 構造方法:
 * StringBuffer() 
          構造一個其中不帶字符的字符串緩沖區,其初始容量為 16 個字符。
   StringBuffer(String str) 
          構造一個字符串緩沖區,并將其內容初始化為指定的字符串內容。
        
   StringBuffer基本上所有的方法都是操作對象本身
   方法
   StringBuffer	append(int i) 
          將 int 參數的字符串表示形式追加到此序列。
   StringBuffer	append(char[] str, int offset, int len) 
          將 char 數組參數的子數組的字符串表示形式追加到此序列。
   StringBuffer	append(Object obj) 
          追加 Object 參數的字符串表示形式。
   StringBuffer	append(String str) 
          將指定的字符串追加到此字符序列。
   StringBuffer	append(StringBuffer sb) 
          將指定的 StringBuffer 追加到此序列中。
          
    StringBuffer	insert(int offset, boolean b) 
          將 boolean 參數的字符串表示形式插入此序列中。
    StringBuffer	 insert(int offset, Object obj) 
          將 Object 參數的字符串表示形式插入此字符序列中。
    StringBuffer 	insert(int offset, String str) 
          將字符串插入此字符序列中。
          
          
    獲取
    int	 capacity()  返回當前容量。
 	char	 charAt(int index) 返回此序列中指定索引處的 char 值。
 	int	length() 返回長度(字符數)。
    int	indexOf(String str) 
          返回第一次出現的指定子字符串在該字符串中的索引。
 	int	indexOf(String str, int fromIndex) 
          從指定的索引處開始,返回第一次出現的指定子字符串在該字符串中的索引。
 	int	lastIndexOf(String str) 
          返回最右邊出現的指定子字符串在此字符串中的索引。
 	int	lastIndexOf(String str, int fromIndex) 
          返回最后一次出現的指定子字符串在此字符串中的索引。
 	刪除
 	StringBuffer  delete(int start, int end) 
          移除此序列的子字符串中的字符。
 	StringBuffer  	deleteCharAt(int index) 
          移除此序列指定位置的 char。
          
     void	setCharAt(int index, char ch) 
          將給定索引處的字符設置為 ch。
 	void	 setLength(int newLength) 
          設置字符序列的長度。
    
  
  void	trimToSize() 
          嘗試減少用于字符序列的存儲空間。
   void	ensureCapacity(int minimumCapacity) 
          確保容量至少等于指定的最小值。
          
          
   StringBuffer容量擴展
   添加元素之后,容量不夠,需要擴容,(在原有容量(capacity)的基礎上乘以2,再加上2)
   原有容量擴展一倍
   
   如果擴展一被之后還不夠存儲,那么容量直接擴展到等于當前所需的最小容量
 * */
public class Demo1 {

	public static void main(String[] args) {
		/*
		 * 刪除
	 	 StringBuffer  delete(int start, int end) 
	          移除此序列的子字符串中的字符。
	 	 StringBuffer  	deleteCharAt(int index) 
	          移除此序列指定位置的 char。
	          
	     void	setCharAt(int index, char ch) 
	          將給定索引處的字符設置為 ch。
	 	 void	 setLength(int newLength) 
	          設置字符序列的長度。
		 * */
		StringBuffer sb = new StringBuffer("igeekhome");
		//sb.delete(1, 3);//[1,3)
		sb.delete(0, 5);
		System.out.println(sb);//home
		sb.deleteCharAt(1);
		System.out.println(sb);
		sb.setCharAt(0, 'k');
		System.out.println(sb);
		/*
		 * 其他  
	   void	getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 
	          將字符從此序列復制到目標字符數組 dst。
	   StringBuffer	replace(int start, int end, String str) 
	          使用給定 String 中的字符替換此序列的子字符串中的字符。
	   StringBuffer	reverse() 
	          將此字符序列用其反轉形式取代。
	          
	 String	substring(int start) 
	          返回一個新的 String,它包含此字符序列當前所包含的字符子序列。
	 String	substring(int start, int end) 
	          返回一個新的 String,它包含此序列當前所包含的字符子序列。
	 String	toString() 
	          返回此序列中數據的字符串表示形式。
		 * */
		sb = new StringBuffer("igeekhome");
		sb.replace(0, 5, "China");
		System.out.println(sb);//Chinahome
		sb.reverse();
		System.out.println(sb);
		sb = new StringBuffer("igeekhome");
		String s  = sb.substring(2);
		System.out.println(s);
		System.out.println(sb);//igeekhome   substring截取子串,并返回新的字符串
		s = sb.substring(0, 5);//[0,5)
		System.out.println(s);
		String s1 = sb.toString();//StringBuffer --> String
		System.out.println(s1);
		
	}
	public static void m2() {
		StringBuffer s = new StringBuffer();
		System.out.println("容量:" + s.capacity());//16 :
		System.out.println("長度:" + s.length());//0
		s.append("igeek");
		System.out.println("容量:" + s.capacity());//16 :包含5個字符
		System.out.println("長度:" + s.length());//5	
		s.append("igeekigeek");//15個字符 ,容量16
		s.append("igeekigeekigeekigeek");
		//s.append("igeekigeekigeek");
		System.out.println("容量:" + s.capacity());//
		System.out.println("長度:" + s.length());//20
	}
	public static void m1() {
		StringBuffer s = new StringBuffer();//空字符串
		System.out.println(s);
		s.append(12);
		System.out.println(s);
		s.append(new char[] {'h','a','h','a'}, 0, 2);
		System.out.println(s);
		s.append(new Demo1());//對象toString方法的返回值拼接到StringBuffer對象上
		System.out.println(s);
		s.append("igeek");
		s.append(new StringBuffer("哈哈"));
		System.out.println(s);
		
		System.out.println(s.append(true).append(3.14));
		/*System.out.println("---");
		String s1 = "haha";
		s1.concat("hehe");
		System.out.println(s1);*/
		s = new StringBuffer("igeek");
		s.insert(1, "哈哈");
		System.out.println(s);
		s.insert(0, new Demo1());
		System.out.println(s);
	}
	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return "0";
	}

}

相關閱讀

仿制圖章工具,如何使用仿製圖章工具?

仿制圖章工具經常用來去水印什么的,十分實用,下面我們來把右邊的那一頭牛復制到左邊。大家先看效果:01開啟一張練習檔。并選擇仿製圖

App Annie免費使用

簡介視頻 排行榜 可以查看各大商店里最近90天內APP的歷史排名數據,并且可以進入任意APP頁面里查看該APP的詳細歷史排名數據。

安娜柏林各種精華使用感 安娜柏林是德國一個有機護膚

安娜柏林各種精華使用感安娜柏林是德國一個有機護膚品牌,天然,身為敏感肌的我可以放心大膽的用,所以就嘗試了各種不同的精華,看在整理

使用比特幣RPC客戶端創建比特幣java應用程序

你可以使用RPC客戶端在Java中創建有擴展性的比特幣應用程序。在這篇博客中,我們將使用JavaBitcoindRpcClient。 在我們開始編碼之

屏幕放大鏡,教您怎么使用屏幕放大鏡

根據小編一段時間的調查,發現還是蠻多人選擇使用win7系統的,而且他們的原因大部分都是覺得win7系統比起其他版本的系統,相對來說比較

(責任編輯:jjjccc)

關鍵詞:StringBuffer,基本,使用

福彩3d字谜画谜藏机图