Ⅰ java如何定义类似append().append()......这类的方法
方法内部业务处理完后返回对象本身,如下:
publicclassTest{
privateStringvalue;
publicTest(Stringvalue){
this.value=value;
}
publicTestappend(Stringstring){
value+=string;
returnthis;
}
@Override
publicStringtoString(){
returnvalue;
}
publicstaticvoidmain(String[]args){
Testtest=newTest("a").append("b").append("c").append("d");
System.out.println(test.toString());
}
}
Ⅱ Java的StringBuffer类中insert和append方法的区别
从意思中也看的出来,insert --插入;append---添加,一个在任意位置加新内容,一个在末尾。prepend就是在前面加了。
Ⅲ java语言:String类的concat方法与StringBuffer类的append方法区别内存状态
首先我们先看几个概念:
1:在java内部是对+进行了重载,在处理String的过程中要创建一个StringBuffer对象,用StringBuffer对象的append方法对字符串进行连接,最后调用toString方法返回String字符串。
2: +和concat操作,是先开辟一个要拼接的字符串的空间,在和老字符串一起拼接成一个新的字符串,所以在堆内存中是创建了三块空间的;
然后先来说1和2的区别:line1: 用的是+,+在底层是通过StringBuffer对象的append方法对字符串进行连接,但是他也并不是直接添加的,我们看看他开辟了几块空间?“abc”“def”“ghi”,刚开始开辟了三块堆内存空间,执行一次+,“abcdef”这是第四块内存空间,最后是最终结果“abcdefghi”开辟了第五块堆内存空间,然后其余的被回收。
line2:同样也是开辟了五块堆内存空间,concat()和+号的区别我们可以看下concat()源代码:
publicStringconcat(Stringstr){
intotherLen=str.length();
if(otherLen==0){
returnthis;
}
intlen=value.length;
/*Of数组复制,Of()的第二个自变量指定要建立的新数组长度,
如果新数组的长度超过原数组的长度,则保留为默认值null或0*/
charbuf[]=Arrays.Of(value,len+otherLen);
//将字符从此字符串复制到目标字符数组,len为数组中的起始偏移量
str.getChars(buf,len);
returnnewString(buf,true);
}
我们可以看到concat()方法是通过Of(),和getChars();两个方法来拼接数组的。+在底层是通过StringBuffer对象的append方法对字符串进行连接。
最后是StringBuffer:StringBuffer使用时,只会开辟一块内存空间,使用append添加或delete删除其内容时,也是在这一块内存空间中并不会生成多余的空间。所以速度是比较快的而String 每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后, JVM 的 GC 就会开始工作,对速度的影响一定是相当大的。
Ⅳ java中用append()方法输出26个大写字母的代码
你好,我按照你的要求写的代码如下,可以直接运行
public class test2 {
public static void main(String[] args) {
StringBuffer str = new StringBuffer();
for (int i = (int) 'A', length = (int) 'Z'; i <= length; i++) {
str.append((char) i);
}
System.out.println(str);
}
}
运行结果:ABCDEFGHIJKLMNOPQRSTUVWXYZ
Ⅳ 关于一个java构造函数中的append方法操作的问题。
这么解释吧,java里面的方法的参数,只是把当前对象指向的地址给参数,
你的这个方法里
StringBuffer a=new StringBuffer("A");
//这一行,假设a指向了内存地址为4000的地方
StringBuffer b=new StringBuffer("B");
//这一行,假设b指向了内存地址为5000的地方
method(a,b);
//这个方法只是把a和b的地址传了过去。x指向4000,y指向5000,a与b还是指向原来的地址。
x.append(y);
//这句将a指向地址的内容变了。
y=x
//只是将y指向的地址发生变化,变为4000,而main程序中的b还指向5000
所以在main程序中输出时,还是B,因为那块内存的内容没有变化。
这么解释明白么?
Ⅵ 请详细说一下java中append()的方法.
StringBuffer里面的方法吧,字符缓冲对象追加信息
比如说:StringBuffer
sb=new
StringBuffer();现在sb里面什么也没有
sb.append("abc");可以将字符串abc追加进sb里面.你打印sb会打印出abc
当然你还可以拉着追加
Ⅶ java中append方法有什么用 builder对象可以代表哪些字符 方法的参数什么情况下需
java中append方法的作用是追加字符串。
builder对象可以代表任何字符串
字符串都需要加引号。
Ⅷ Java中的append()方是任何类都有的吗
你好!
不是每个类都有。
常用的类中,只有StringBuffer才有。
你可以下载JDK的API帮助,查看一下就知道了。
Object是所有类的父类,只有是Object的公共方法,所有类才有。append()方法并不是Object的方法。
如果对你有帮助,望采纳。
Ⅸ Java中StringBuffer类append方法的使用
参数将被转换成字符串,就好象使用了 String.valueOf 方法一样。然后,将所得字符串中的字符追加到此序列。 参数:obj - 一个 Object。 返回:此对象的一个引用。 另请参见:String.valueOf(java.lang.Object), append(java.lang.String)appendpublic StringBuffer append(String str) 将指定的字符串追加到此字符序列。 按顺序追加 String 变量中的字符,使此序列增加该变量的长度。如果 str 为 null,则追加 4 个字符 "null"。 假设此字符序列的长度在执行 append 方法前为 n。如果 k 小于 n,则新字符序列中索引 k 处的字符等于原序列中索引 k 处的字符;否则它等于参数 str 中索引 k-n 处的字符。 参数:str - 一个 string。 返回:此对象的一个引用。appendpublic StringBuffer append(StringBuffer sb) 将指定的 StringBuffer 追加到此序列中。 按顺序将 StringBuffer 参数中的字符追加到此 StringBuffer 中,并使 StringBuffer 在长度上增加该参数的长度。如果 sb 为 null,则将 4 个 "null" 字符追加到此 StringBuffer 中。 在执行 append 方法前,让 StringBuffer 中包含的原有字符序列的长度为 n。如果 k 小于 n,则新字符序列中索引 k 处的字符等于原有字符序列中索引 k 处的字符;否则它等于参数 sb 中索引 k-n 处的字符。 该方法在 this(目标)对象上实现同步,但不在源(sb)上实现同步。 参数:sb - 要追加的 StringBuffer。 返回:该对象的一个引用。 从以下版本开始:1.4 appendpublic StringBuffer append(CharSequence s) 将指定的 CharSequence 追加到该序列。 按顺序将 CharSequence 参数中的字符追加到该序列中,使该序列增加该参数的长度。 该方法的结果与调用 this.append(s, 0, s.length()) 的结果完全相同; 该方法在 this(目标)对象上实现同步,但不在源(s)上实现同步。 如果s 为 null,则追加 4 个 "null" 字符。 指定者:接口Appendable 中的 append参数:s - 要追加的 CharSequence。 返回:此对象的一个引用。 从以下版本开始:1.5 appendpublic StringBuffer append(CharSequence s, int start, int end) 将指定 CharSequence 的子序列追加到此序列。 按顺序追加参数 s 中的字符,即从索引 start 开始到索引 end 结束的此序列的内容。此序列增加的长度为 end - start。 假设此字符序列的长度在执行 append 方法前为 n。如果 k 小于 n,则新字符序列中索引 k 处的字符等于原序列中索引 k 处的字符;否则它等于参数 s 中索引 k+start-n 处的字符。 如果s 为 null,则认为 s 参数包含 4 个字符 "null",并以此为根据追加字符。 指定者:接口Appendable 中的 append参数:s - 要追加的序列。 start - 要追加的子序列的起始索引。 end - 要追加的子序列的结束索引。 返回:此对象的一个引用。 抛出:IndexOutOfBoundsException 如果 start 或 end 为负;或者 start 大于 end;或者 end 大于 s.length() 从以下版本开始:1.5 appendpublic StringBuffer append(char[] str) 将char 数组参数的字符串表示形式追加到此序列。 按顺序将数组参数中的字符追加到此序列的内容中。此字符将增加该参数的长度。 该方法的总体效果与以下操作过程的效果相同:先使用 String.valueOf(char[]) 方法将参数转换为字符串,然后将所得字符串的字符追加到此字符序列。 参数:str - 要追加的字符。 返回:此对象的一个引用。appendpublic StringBuffer append(char[] str, int offset, int len) 将char 数组参数的子数组的字符串表示形式追加到此序列。 将char 数组 str 中的字符按顺序追加到此序列的内容中,从索引 offset 开始。此字符的长度将增加 len。 该方法的最终效果与以下操作过程的效果相同:先使用 String.valueOf(char[]) 方法将参数转换为字符串,然后将所得字符串的字符追加到此字符序列。 参数:str - 要追加的字符。 offset - 要追加的第一个 char 的索引。 len - 要追加的 char 的数量。 返回:此对象的一个引用。appendpublic StringBuffer append(boolean b) 将boolean 参数的字符串表示形式追加到序列。 参数将被转换成字符串,就好象使用了 String.valueOf 方法一样。然后,将所得字符串中的字符追加到此序列。 参数:b - 一个 boolean 值。 返回:此对象的一个引用。 另请参见:String.valueOf(boolean), append(java.lang.String)appendpublic StringBuffer append(char c) 将char 参数的字符串表示形式追加到此序列。 参数将被追加到此序列。此序列的长度将增加 1。 该方法的最终效果与以下操作过程的效果相同:先使用 String.valueOf(char[]) 方法将参数转换为字符串,然后将所得字符串的字符追加到此字符序列。 指定者:接口Appendable 中的 append参数:c - 一个 char 值。 返回:此对象的一个引用。appendpublic StringBuffer append(int i) 将int 参数的字符串表示形式追加到此序列。 参数将被转换成字符串,就好象使用了 String.valueOf 方法一样。然后,将所得字符串中的字符追加到此序列。 参数:i - 一个 int 值。 返回:此对象的一个引用。 另请参见:String.valueOf(int), append(java.lang.String)