Class StringBuilder 翻譯

麻煩請幫我翻譯以下這API說明,謝謝

A mutable sequence of characters. This class provides an API compatible with StringBuffer, but with no guarantee of synchronization. This class is designed for use as a drop-in replacement for StringBuffer in places where the string buffer was being used by a single thread (as is generally the case). Where possible, it is recommended that this class be used in preference to StringBuffer as it will be faster under most implementations.

The principal operations on a StringBuilder are the append and insert methods, which are overloaded so as to accept data of any type. Each effectively converts a given datum to a string and then appends or inserts the characters of that string to the string builder. The append method always adds these characters at the end of the builder; the insert method adds the characters at a specified point.

For example, if z refers to a string builder object whose current contents are "start", then the method call z.append("le") would cause the string builder to contain "startle", whereas z.insert(4, "le") would alter the string builder to contain "starlet".

In general, if sb refers to an instance of a StringBuilder, then sb.append(x) has the same effect as sb.insert(sb.length(), x). Every string builder has a capacity. As long as the length of the character sequence contained in the string builder does not exceed the capacity, it is not necessary to allocate a new internal buffer. If the internal buffer overflows, it is automatically made larger.

Instances of StringBuilder are not safe for use by multiple threads. If such synchronization is required then it is recommended that StringBuffer be used.

2 個解答

評分
  • 1 0 年前
    最佳解答

    一個可變的字元序列。這個類別讓他與 StringBuffer 的 API 相容,但是缺少同步化的保證。

    這個類別是設計在單一執行緒的時候取代處理字串緩衝區的 StringBuffer (就是一般的狀況)。

    可能的話,推薦偏好使用這個類別來代替 StringBuffer,因為他在大部分實作上都比較快速。

    概念上,StringBuilder 的操作就是 append 和 insert 方法,他們被 overloaded 來接受任何的資料型態。

    這兩個方法能夠有效地轉換給定的資料到一個字串,然後加入或插入字串中的字元到我們的字串建立器中,那個加入的方法每次都會增加字元到建立器的尾巴後面;而插入的方法會增加字元到指定的位置。

    舉例而言,如果 z 是字串建立器的物件,他的內容是 "start",呼叫 z.append("le") 方法會讓字串建立器變成內含 "startle", 而如果是 z.insert(4, "le") 則會變成 "starlet".

    一般而言,如果 sb 是 StringBuilder 的實體,那麼 sb.append(x) 和 sb.insert(sb.length(), x) 有相同的效果。

    每個字串建立器都有一個存放空間。如果在字串建立器的字串序列長度一直都沒有超過他的存放空間,他就沒有必要配置一個新的緩衝區大小。

    如果內部的緩衝區滿出來,他就會被自動加大。

    StringBuilder 的實體並非安全於多緒環境中。

    如果有需要做這樣的同步化,那麼推薦使用 StringBuffer.

    參考資料: 我是專業程式設計師
  • 1 0 年前

    字符一個可變的序列。這類提供API 兼容StringBuffer, 但沒有同步保證。這類被設計至於使用作為a 下落在替換為StringBuffer 在串緩衝由一條唯一螺紋使用的地方(像一般案件) 。哪裡可能它建議, 這類被使用優先於StringBuffer 因為它將是快速的在多數實施之下。

    主要操作在StringBuilder 是添附和插入方法, 被超載以便接受任一型資料。每個有效地轉換指定的基準成串和然後添附或插入那串字符對串建造者。添附方法總增加這些字符在建造者的末端; 插入物方法增加字符在指定的點。

    例如, 如果z 提到當前內容是"開始" 的串建造者對象, 那麼方法電話z.append("le") 會導致串建造者包含"震驚", 但是z.insert(4, "le") 會修改串建造者包含"starlet" 。

    總之, 如果sb 提到StringBuilder 的事例, sb.append(x) 然後有作用和sb.insert(sb.length(), x) 一樣。每位串建造者有容量。只要字符序列的長度包含在串建造者不超出容量, 它不是必要分配一個新內部緩衝區。如果內部緩衝區溢出, 它自動地使更大。

    StringBuilder 事例不是安全的供多條螺紋使用。如果這樣的同步然後必需它建議, StringBuffer 被使用。

    參考資料: 老師
還有問題?馬上發問,尋求解答。