请教一下各位大侠,
声明了一个StringBulider对象path,现想通过append为path赋值,程序如下:StringBuilder path = new StringBuilder();
path.append(paths[j][i]);其中paths[j][i]为StringBuffer对象,值为"4,2,1"程序运行结果path并没有被复制,仍为空值。
请教下大家这是什么原因呢?

解决方案 »

  1.   


    //看来,咱俩用的不是同一个jdk
    public static void main(String[] args) {
    StringBuilder sb1 = new StringBuilder();
    StringBuilder sb2 = new StringBuilder();
    sb1.append("1").append("2").append("3");
    sb2.append(sb1);
    System.out.println(sb2);
    }
      

  2.   

    感谢楼上关注,不过我赋值的字符串中有"," 该怎么处理才能一次性赋值给path呢....
      

  3.   

    public static void main(String[] args) {
            StringBuilder sb1 = new StringBuilder();
            StringBuilder sb2 = new StringBuilder();
            for(int i=0;i<p[i].length();i++){
            if(i==p[i].length()-1){
                sb1.append(p[i]);
                break;
              }
            sb1.append(p[i]+",");
            }
            sb2.append(sb1);
            System.out.println(sb2);
        }
      

  4.   

    append之后仍为空值?
    那么楼主确定被append进去的参数真的不是空值吗?
      

  5.   

    public class tempMain { /**
     * @param args
     */
    public static void main(String[] args) {
    StringBuffer sb1=new StringBuffer();
    StringBuffer sb2=new StringBuffer("1,2,3");
    sb1.append(sb2);
    System.out.println(sb1); }}
    程序可以正常输出,说明你的paths是空的,建议你在append前先print下看看里面是不是真的有数据.
      

  6.   

    你还是确认一下 paths[j][i] 中的 StringBuffer 是否真的存在字符串。
    如果 paths[j][i] 中的 StringBuffer 确实有值,那么肯定会出现在 StringBuilder 中。
      

  7.   

    看来,楼主的paths[j][i]中是一个空值,所以才不会被append上去。
      

  8.   

    谢谢大家!我太粗心了,path[j][i]确实是空值,给大家添麻烦了
    散分!