日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

StringBuilder详解

發布時間:2023/11/30 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 StringBuilder详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、簡介

StringBuilder和StringBuffer一樣,都是繼承自抽象類AbstractStringBuilder類,也是一個可變的字符序列。StringBuilder和StringBuffer非常相似,甚至有互相兼容的API,不過,StringBuilder不是線程安全的,這是和StringBuffer的主要區別。StringBuilder的層次結構如下:

StringBuilder類被設計成在不需要多線程安全的情況下替換StringBuffer類的。如果程序中不需要多線程安全,推薦使用StringBuilder類,因為沒有了同步的操作而速度上比較快。

StringBuilder和StringBuffer一樣,主要的操作有append和insert等。

2、StringBuilder原理


StringBuilder的原理和StringBuffer一樣,不同之處在于StringBuilder不需要考慮線程安全。具體的原理參見另一篇StringBuffer詳解。


3、常用方法

StringBuilder的常用方法和StringBuffer的一樣。列出如下:

(1)構造函數

StringBuilder有四個構造函數:

  • StringBuilder() value內容為空,并設置容量為16個字節;
  • StringBuilder(CharSequece seq) ?使用seq初始化,容量在此基礎上加16;
  • StringBuilder(int capacity) 設置特定容量;
  • StringBuilder(String str) ?使用str初始化,容量str大小的基礎上加16;

(2)append方法

由于繼承了Appendable接口,所以要實現append方法,StringBuilder類對幾乎所有的基本類型都重載了append方法:

  • append(boolean b)
  • append(char c)
  • append(char[] str)
  • append(char[] str,int offset,int len)
  • append(CharSequence s)
  • append(CharSequence s,int start,int end)
  • append(double d)
  • append(float f)
  • append(int i)
  • append(long lng)
  • append(Object obj)
  • append(String str)
  • append(StringBuffer sb)

(3)insert方法

insert方法可以控制插入的起始位置,也幾乎對所有的基本類型都重載了insert方法:

  • insert(int offser,boolean b)
  • insert(int offset,char c)
  • insert(int offset,char[] str)
  • insert(int index,char[] str,int offset,int len)
  • insert(int dsfOffset,CharSequence s)
  • insert(int dsfOffset,CharSequence s,int start,int end)
  • insert(int offset,double d)
  • insert(int offset,float f)
  • insert(int offset,int i)
  • insert(int offset,long l)
  • insert(int offset,Object obj)
  • insert(int offset,String str)

(4)其它會改變內容的方法

上面的那些方法會增加StringBuilder的內容,還有一些方法可以改變StringBuilder的內容:

  • StringBuilder?delete(int start,int end) 刪除從start到end(不包含)之間的內容;
  • StringBuilder?deleteCharAt(int index) 刪除index位置的字符;
  • StringBuilder?replace(int start,int end,String str) 用str中的字符替換value中從start到end位置的子序列;
  • StringBuilder?reverse() 反轉;
  • void setCharAt(int index,char ch) 使用ch替換位置index處的字符;
  • void setLength(int newLength) 可能會改變內容(添加'\0');

(5)其它常用方法

下面這些方法不會改變內容:

  • int capacity() 返回value的大小即容量;
  • int length() 返回內容的大小,即count;
  • char charAt(int index) 返回位置index處的字符;
  • void ensureCapacity(int minimumCapacity) 確保容量至少是minimumCapacity;
  • void getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin) 返回srcBegin到srcEnd的字符到dst;
  • int indexOf(String str) 返回str第一次出現的位置;
  • int indexOf(String str,int fromIndex) 返回從fromIndex開始str第一次出現的位置;
  • int lastIndexOf(String str) 返回str最后出現的位置;
  • int lastIndexOf(String str,int fromIndex) 返回從fromIndex開始最后一次出現str的位置;
  • CharSequence subSequence(int start,int end) 返回字符子序列;
  • String substring(int start) 返回子串;
  • String substring(int start,int end) 返回子串;
  • String toString() 返回value形成的字符串;
  • void trimToSize() 縮小value的容量到真實內容大小;

總結

以上是生活随笔為你收集整理的StringBuilder详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。