String x = "abc";
String y = "123";
System.out.println(x+";"+y);

x=y+((y=x)==""?"":"");
System.out.println(x+";"+y);

解决方案 »

  1.   

    String x = "abc"; //声明一个变量x 并且初始化为 “abc”
    String y = "123"; //同上
    System.out.println(x+";"+y); //输入x,y;输入内容为:abc;123x=y+((y=x)==""?"":"");     
    //1、x赋值给y,2、判断y是否为“”,为“”是返回“”,不为空“”时同样返回“”,3、y+“”,4、x=y+“”,所以最后x值为“123”
    System.out.println(x+";"+y);//输出x,y;输出内容为:123;123
      

  2.   

    x=y+((y=x)==""?"":"");    
    //1、x赋值给y,2、判断y是否为“”,为“”是返回“”,不为空“”时同样返回“”,3、y+“”,4、x=y+“”,所以最后x值为“123 ” //多个空格吧
      

  3.   

    请不要断单取义。这个例子的实现的就是字符串a和b之间不用第三个变量实现值互换,结果是:123;abc
      

  4.   

    String x = "abc";
    String y = "123";
    System.out.println(x+";"+y);x=y+((y=x)==""?"":"");
    System.out.println(x+";"+y);我的理解是这样的:String x = "abc";"abc"是一个对象,x则是保存"abc"这个对象的地址。y=x的时候实际上是把"abc"的地址索引给了y,x=y+""中的y+""实际上就是"123"的对象加一个"",实现了一个新的对象然后给了x。
    不知我的分析的对不对,请大家给解释下。