java append

作者:原创时间:2022-03-23
文档

java append是什么, 让我们一起了解一下?

append是在Java中的StringBuffer类中,而StringBuffer类包含append()方法,append()方法相当于“+”,将指定的字符串追加到此字符序列。

根据源代码来分析:

public synchronized StringBuffer append(CharSequence s, int start, int end)
{undefined
super.append(s, start, end);
return this;
}

根据运行结果分析:

StringBuffer对象的append()方法的参数,如果是String类型,那么后面取子串的操作实际是从索引3开始,取值到索引4之前的串。

如果append的语句改成 buf.append(aString,3,3),那么没有添加aString的子串,即 buf包含的字符实际还是"Hard "。

如果此语句再改成 buf.append(aString3,2),那么系统会抛出"IndexOutOfBoundsException"的异常!

但是,如果append()的参数是字符数组(char[]),那么结果就如原文所述,buf将包含串"Hard work".。

代码如下:

StringBuffer buf=new StringBuffer("Hard ");
char[] text ={'W','a','x','w','o','r','k','s'};
buf.append(text ,3,4); 即 buf包含串"Hard work"

具体原因引用源代码:

public synchronized StringBuffer append(char str[], int offset, int len)
{undefined
super.append(str, offset, len);
return this;
}

JAVA中Stringbuffer 有append( )方法,Stringbuffer其实是动态字符串数组,append( )是往动态字符串数组添加,跟“xxxx”+“yyyy”相当那个‘+’号,跟String不同的是Stringbuffer是放一起的,String1+String2 和Stringbuffer1.append("yyyy")虽然打印效果一样,但在内存中表示却不一样,String1+String2 存在于不同的两个地址内存,Stringbuffer1.append(Stringbuffer2)放再一起。

StringBuffer线程是安全的,多用于多线程。

以上就是小编今天的分享了,希望可以帮助到大家。

显示全文
java application java apriori java archive java arcsin java arccos java arctan java args java arrays.sort java ascii java asmx java aspectj java aspose java assembly java async win10专业版和企业版的区别 java bacnet java barrier java base64 java base64decoder java bean 苹果13蓝牙搜索不到设备怎么办 java apns java ant java annotation java android iphone呼叫失败是什么原因 java algorithm ipad2是哪年的 java akka java aggregation java aes加密 java advice java addall java add java actuator 西北五省是哪五省 java activity java activiti 瓮安县属于哪个市 java active