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

这两种 定义String的区别
String s1 = new String();
String s2 = "";
int x = 99;
=======================================
为什么
s1 = s1 + x;会报错

而 
s2 = s2 + x;就不会报错?

如果写成s1 = "" + s1 + x;就不会报错了

有人能解释一下么?

============================================
============================================
第二个问题
Set<String> st = new TreeSet<String>();
String result = “”;
blablabla//假设现在随机将若干string加入st中
for (String each : st){
   if(满足某些条件,假设至少有一个满足){
       result = each;
   }
}
S.O.P(result);//(控制台输出result)

问题是result会返回一组乱码,也就是说,"result = each;"只是赋了个索引,并没有把实际的数据复制给result。

我的解决方法是:把foreach loop拿出来单独写一个方法。

请问,除此之外,有没有别的方法可以是result接收到each的真实值。

谢谢。
------最佳解决方案--------------------


第二个问题也是对的呢?和电脑的配置有关吗?
------其他解决方案--------------------


我这没有错呢?