新手问题,关于数组,很低级的问题,希望得到解决。

String[] a={"1","2"};
String n="1";
out.print("数量:"+a.length+"
");
String m="";
for(int i=0;i<a.length;i++){

if(a[i]==n) out.print("TRUE <br>");
out.print("输出:"+a[i]+"<br>");
m+=a[i]+",";

}
out.print("输出:"+m+"

");

String[] b;
b=m.split(",");
out.print("数量:"+b.length+"
");
for(int i=0;i<b.length;i++){

if(b[i].toString()==n) out.print("TRUE <br>");
out.print("输出:"+b[i]+"<br>");

}

我是想判断n,为什么第一个数组就可以得出true 第二个就没有呢。

用equals()

因为Java里String的==是用来判断对象是否“引用相等”,也就是说是不是“同一个对象”。
数组a里的第一个元素与后面的n都是指向"1"这个字面量对应的String实例,是同一个对象。后面从m.split()得到的第一个元素虽然内容也是1,但与前面的n却不是同一个对象,所以用==就得到false。在第二个循环里把==换成n.equals(b[i])就行。