码迷,mamicode.com
首页 > 其他好文 > 详细

the detailed annotation of StringBuilder

时间:2018-10-09 21:49:47      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:seq   等于   tar   因此   enc   .com   val   pac   pairs   

public int capacity()
返回当前容量。容量指可用于最新插入字符的存储量,超过这一容量便需要再次分配。

 

返回:
当前容量。
public int length()
返回长度(字符数)。

 

指定者:
接口 CharSequence 中的 length
返回:
此对象表示的当前字符序列的长度。
容量是理论值,长度是实际值。
public StringBuilder append(任意类型) 
将 任意类型 参数的字符串表示形式追加到序列。 
参数将被转换成字符串,就好象使用了 String.valueOf 方法一样。然后,将所得字符串中的字符追加到此序列。

reverse

public StringBuilder reverse()
将此字符序列用其反转形式取代。如果序列中存在代理项对 (surrogate pair),在 reverse 操作中将其作为单个字符处理。因此,高-低代理项的顺序不会反转。假设 n 为执行 reverse 方法前此字符序列的字符长度(并非 char 值的长度),则新字符序列中索引 k 处的字符将等于原字符序列索引 n-k-1 处的字符。

注意,进行 reverse 操作后,执行操作前未成对的低代理项和高代理项将成为代理项对。例如,反转 "\uDC00\uD800" 将生成有效的代理项对 "\uD800\uDC00"。

 

返回:
此对象的一个引用。
在这里有人可能会问什么是代理项对?下面将给出详细解释。
字面意义是:代理对。实际上是指:对于一个UTF16编码改用两个UTF16编码来代替。
翻译的估计可以是:UTF16编码代理对。

为何需要surrogate pairs?本来一个字符用一个UTF16编码(两个字节)来表示即可,但是由于需要被编码的字符越来越多,只用一个UTF16编码已经不足于表示所有的字符。因此,就需要考虑使用2个UTF16来表示一个字符(四个字节)。但是如果对于所有的字符都这样编码的话,太浪费空间了(原来只需要2个字节,现在都改用4个字节),所以规定,只有使用两个一定范围内的UTF16编码才被认为是一组surrogate pairs,其一起用来表示一个字符,对于其余的情形还是用一个UTF16来表示一个字符。

the detailed annotation of StringBuilder

标签:seq   等于   tar   因此   enc   .com   val   pac   pairs   

原文地址:https://www.cnblogs.com/lzp123456-/p/9762770.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!