问题描述
- StringBuffer的中的append问题
-
public class Test2 {
public static void main(String[] args) {StringBuffer a = new StringBuffer("A"); StringBuffer b = new StringBuffer("B"); menthod(a, b); System.out.println(a + "," + b); } static void menthod(StringBuffer x, StringBuffer y) { x.append(y); y = x; }
}
为什么输出结果是AB,B啊?
解决方案
解决方案二:
你这个写的,只是把x.append(y)赋给了形参y,并没有改变实参呀。也就是说,你是写了 y=x,但并没有返回任何值,而第一句x.append(y),确实改变了这个值,但第二个并没有返回任何有效信息
解决方案三:
public class QTest_2 {
public static void main(String[] args) {
StringBuffer a = new StringBuffer("A");
StringBuffer b = new StringBuffer("B");
StringBuffer b1 =menthod(a, b);//这样应该明白了吧
System.out.println(a + "," + b1);
}
static StringBuffer menthod(StringBuffer x, StringBuffer y) {
y=x.append(y);
return y;
}
}
解决方案四:
加号和stringbuffer.append()的区别
Stringbuffer 中append()方法
解决方案五:
String是不能够修改的,不能通过赋值来改变原先的内容
解决方案六:
menthod(a, b)在这一步的是,已经把B添加到A上了,所以这个时候a是AB,b是B。
时间: 2024-08-24 11:42:20