public class StringBuilder extends Object implements CharSequence, Appendable, Serializable
可复用的字符串生成器,非线程安全
| 限定符和类型 | 字段和说明 |
|---|---|
static int |
DEFAULT_CAPACITY
默认容量
|
private int |
position
当前指针位置,或者叫做已经加入的字符数,此位置总在最后一个字符之后
|
private static long |
serialVersionUID |
private char[] |
value
存放的字符数组
|
| 构造器和说明 |
|---|
StringBuilder()
构造
|
StringBuilder(CharSequence... strs)
构造
|
StringBuilder(int initialCapacity)
构造
|
| 限定符和类型 | 方法和说明 |
|---|---|
StringBuilder |
append(char c)
追加一个字符
|
StringBuilder |
append(char[] src)
追加一个字符数组
|
StringBuilder |
append(char[] src,
int srcPos,
int length)
追加一个字符数组
|
StringBuilder |
append(CharSequence csq) |
StringBuilder |
append(CharSequence csq,
int start,
int end) |
StringBuilder |
append(Object obj)
追加对象,对象会被转换为字符串
|
char |
charAt(int index) |
StringBuilder |
clear()
删除全部字符,位置归零
|
static StringBuilder |
create()
创建字符串构建器
|
static StringBuilder |
create(CharSequence... strs)
创建字符串构建器
|
static StringBuilder |
create(int initialCapacity)
创建字符串构建器
|
StringBuilder |
del(int start,
int end)
删除指定长度的字符,规则如下:
1、end大于等于最大长度,结束按照最大长度计算,相当于删除start之后虽有部分(性能最好)
2、end小于start时,抛出StringIndexOutOfBoundsException
3、start小于0 按照0处理
4、start等于end不处理
5、start和end都位于长度区间内,删除这段内容(内存拷贝)
|
StringBuilder |
delTo(int newPosition)
删除到指定位置
如果新位置小于等于0,则删除全部 |
private void |
ensureCapacity(int minimumCapacity)
确认容量是否够用,不够用则扩展容量
|
private void |
expandCapacity(int minimumCapacity)
扩展容量
首先对容量进行二倍扩展,如果小于最小容量,则扩展为最小容量 |
StringBuilder |
getChars(int srcBegin,
int srcEnd,
char[] dst,
int dstBegin)
将指定段的字符列表写出到目标字符数组中
|
boolean |
hasContent()
是否有内容
|
StringBuilder |
insert(int index,
char c)
插入指定字符
|
StringBuilder |
insert(int index,
char[] src)
指定位置插入数据
如果插入位置为当前位置,则定义为追加 如果插入位置大于当前位置,则中间部分补充空格 |
StringBuilder |
insert(int index,
char[] src,
int srcPos,
int length)
指定位置插入数据
如果插入位置为当前位置,则定义为追加 如果插入位置大于当前位置,则中间部分补充空格 |
StringBuilder |
insert(int index,
CharSequence csq)
指定位置插入字符串的某个部分
如果插入位置为当前位置,则定义为追加 如果插入位置大于当前位置,则中间部分补充空格 |
StringBuilder |
insert(int index,
CharSequence csq,
int start,
int end)
指定位置插入字符串的某个部分
如果插入位置为当前位置,则定义为追加 如果插入位置大于当前位置,则中间部分补充空格 |
StringBuilder |
insert(int index,
Object obj)
追加对象,对象会被转换为字符串
|
boolean |
isEmpty()
是否为空
|
int |
length() |
private void |
moveDataAfterIndex(int index,
int length)
指定位置之后的数据后移指定长度
|
StringBuilder |
reset()
删除全部字符,位置归零
|
CharSequence |
subSequence(int start,
int end) |
String |
subString(int start)
返回自定段的字符串
|
String |
subString(int start,
int end)
返回自定段的字符串
|
String |
toString()
生成字符串
|
String |
toString(boolean isReset)
生成字符串
|
String |
toStringAndReset()
重置并返回生成的字符串
|
private static int |
totalLength(CharSequence... strs)
给定字符串数组的总长度
null字符长度定义为0 |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitchars, codePointsprivate static final long serialVersionUID
public static final int DEFAULT_CAPACITY
private char[] value
private int position
public StringBuilder()
public StringBuilder(int initialCapacity)
initialCapacity - 初始容量public StringBuilder(CharSequence... strs)
strs - 初始字符串public static StringBuilder create()
StringBuilderpublic static StringBuilder create(int initialCapacity)
initialCapacity - 初始容量StringBuilderpublic static StringBuilder create(CharSequence... strs)
strs - 初始字符串StringBuilderpublic StringBuilder append(Object obj)
obj - 对象public StringBuilder append(char c)
append 在接口中 Appendablec - 字符public StringBuilder append(char[] src)
src - 字符数组public StringBuilder append(char[] src, int srcPos, int length)
src - 字符数组srcPos - 开始位置(包括)length - 长度public StringBuilder append(CharSequence csq)
append 在接口中 Appendablepublic StringBuilder append(CharSequence csq, int start, int end)
append 在接口中 Appendablepublic StringBuilder insert(int index, Object obj)
index - 插入位置obj - 对象public StringBuilder insert(int index, char c)
index - 位置c - 字符public StringBuilder insert(int index, char[] src)
index - 插入位置src - 源数组public StringBuilder insert(int index, char[] src, int srcPos, int length)
index - 插入位置src - 源数组srcPos - 位置length - 长度public StringBuilder insert(int index, CharSequence csq)
index - 位置csq - 字符串public StringBuilder insert(int index, CharSequence csq, int start, int end)
index - 位置csq - 字符串start - 字符串开始位置(包括)end - 字符串结束位置(不包括)public StringBuilder getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
srcBegin - 起始位置(包括)srcEnd - 结束位置(不包括)dst - 目标数组dstBegin - 目标起始位置(包括)public boolean hasContent()
public boolean isEmpty()
public StringBuilder clear()
public StringBuilder reset()
public StringBuilder delTo(int newPosition)
newPosition - 新的位置,不包括这个位置public StringBuilder del(int start, int end) throws StringIndexOutOfBoundsException
1、end大于等于最大长度,结束按照最大长度计算,相当于删除start之后虽有部分(性能最好) 2、end小于start时,抛出StringIndexOutOfBoundsException 3、start小于0 按照0处理 4、start等于end不处理 5、start和end都位于长度区间内,删除这段内容(内存拷贝)
start - 开始位置,负数按照0处理(包括)end - 结束位置,超出最大长度按照最大长度处理(不包括)StringIndexOutOfBoundsException - 当start > end抛出此异常public String toString(boolean isReset)
isReset - 是否重置,重置后相当于空的构建器public String toStringAndReset()
public String toString()
toString 在接口中 CharSequencetoString 在类中 Objectpublic int length()
length 在接口中 CharSequencepublic char charAt(int index)
charAt 在接口中 CharSequencepublic CharSequence subSequence(int start, int end)
subSequence 在接口中 CharSequencepublic String subString(int start)
start - 开始位置(包括)public String subString(int start, int end)
start - 开始位置(包括)end - 结束位置(不包括)private void moveDataAfterIndex(int index,
int length)
index - 位置length - 位移长度private void ensureCapacity(int minimumCapacity)
minimumCapacity - 最小容量private void expandCapacity(int minimumCapacity)
minimumCapacity - 需要扩展的最小容量private static int totalLength(CharSequence... strs)
strs - 字符串数组Copyright © 2020. All rights reserved.