日期:2014-05-20  浏览次数:20663 次

不知道大家与没遇到这种情况
比如我定义了一个StringBuffer对象strA,StringBuffer strA = new StringBuffer("haha");
再定义一个字符串,strB = "zaza";
然后strA.append("strB"),再去读strA的时候任然只能读出haha,append()方法根本没有把strB数据添加到strA中,

大家遇到这种情况一般都是哪里有问题呢?希望大家讨论讨论,我最近就遇到了这个问题。

------解决方案--------------------
探讨

我的错,strB不带引号的,是这样的,
StringBuffer strA = new StringBuffer("haha");

strB = "zaza";

strA.append(strB);

但是你System.out.println(strA.toString());
的时候还是只有haha,zaza并没有追加到后面,我做字符串拼接的时候总是遇到无法拼接到一起的问……

------解决方案--------------------
StringBuffer strA = new StringBuffer("haha");
StringBuffer strB = "zaza";
strA=strA.append(strB);//这里写错了,呵呵
System.out.println(strA);
strA.append("strB");的返回值是一个字符串引用,你把这个引用重新赋给strA就可以了。(感觉不是在原来的String上追加的,而是复制到了另外一个里面。)
------解决方案--------------------
经过测试,无楼主上述问题。
1.数据是否传到该函数内
2.是否能匹配switch
Java code

public class Test {
    public static void main(String args[]){
        TestStringBuffer tsb = new TestStringBuffer();
        String s= new String("abc");
        tsb.setAsb(s);
        System.out.println(tsb.getAsb());
    }
}
class TestStringBuffer{
    
    private StringBuffer sb;
    
    public TestStringBuffer(){
        this.sb = new StringBuffer("数据");
    }
    public String getAsb() {
        return this.sb.toString();
    }
    public void setAsb(String s){
        this.sb.append(s);
    }

------解决方案--------------------
没有这种情况的吧
Java code

public class Test
{
    public static void main(String[] args) throws Exception
    {
        StringBuffer str1 = new StringBuffer("aaa");
        String str2 = "bbb";
        str1.append(str2);
        System.out.println(str1.toString());
    }
}