当前位置:首页 > 培训职业 > 正文

运算符 !不能应用于 java.lang.String,java.lang

看代码 ,错误出现在if那一行里,但是请让我先不说为什么。

你看完下面的例子,你思考下,就知道为什么了

publicclassBiJiao{

publicstaticvoidmain(String[]args){

//比较基本数据类别,比如intbyteshort..等使用两个==表示等于,使用!=表示不等于

intx=10;

inty=10;

if(x==y){

System.out.println(x+"和"+y+"相等");

}

chara='A';

charb='B';

if(a!=b){

System.out.println(a+"和"+b+"不等于");

}

//比较String这种非基本数据类型的对象,应该调用该对象的equals方法

Strings1="张三";

Strings2="张三";

if(s1.equals(s2)){

System.out.println(s1+"和"+s2+"相等");

}

s2="王五";

if(!s1.equals(s2)){

System.out.println(s1+"和"+s2+"不相等");

}

//下面建一个Person类的两个实例,就重写了该类的equals的方法

Personp1=newPerson("张三",20);

Personp2=newPerson("张三",20);

if(p1.equals(p2)){

System.out.println("这是一个人啊");

}else{

System.out.println("这不是一个人啊");

}

}

}

classPerson{

Stringname;

intage;

publicPerson(Stringname,intage){

this.name=name;

this.age=age;

}

//重写equals方法.大概逻辑就是比较对象两者的名字一样且年龄一样就是同一人

publicbooleanequals(Objectobj){

if(this==obj)

returntrue;

if(obj==null)

returnfalse;

if(getClass()!=obj.getClass())

returnfalse;

Personother=(Person)obj;

if(age!=other.age)

returnfalse;

if(name==null){

if(other.name!=null)

returnfalse;

}elseif(!name.equals(other.name))

returnfalse;

returntrue;

}

}

你的错误,是想用一个等号,去比较两个字符串String是否相等,怎么修改,你看上面的例子

//用==无法判断字符串内容是否相等

if(s1==s2){

System.out.println("相等");

}else{

System.out.println("不等");

}

多重随机标签

猜你喜欢文章