java的简单问题(在线等)

来源:百度知道 编辑:UC知道 时间:2024/06/20 22:03:53
public class text {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String s1=new String("new");
char[] c1=new char[3];
c1[0]='n';c1[1]='e';c1[2]='w';
String s2=c1.toString();
System.out.print(s1.equals(s2));
}

}
为什么输出是false啊???怎么比才能相等呢???

c1.toString();结果是c1在内存中地址

要把字符数组转换成String,用:
String s2 = new String(c1);

s1.equals(s2));
输出的是个布尔类型
只能是true false
不知道你想干什么

String s2=c1.toString(); 这个string是数组的地址
改为 String s2=String.valueOf(c1[0])+String.valueOf(c1[1])+String.valueOf(c1[2]);

String s1 = new String("new");
char[] c1 = new char[3];
c1[0] = 'n';
c1[1] = 'e';
c1[2] = 'w';
String s2 = "";
for (int i = 0; i < 3; i++)
s2 += c1[i];
System.out.print(s1.equals(s2));

ok了 给分吧 呵呵

String比较时用==,不用equals
System.out.print(s1==s2);

java中基本数据类型和String用==,其他的复合数据类型用equals