运算符 !不能应用于 java.lang.String,java.lang
- 培训职业
- 2025-05-05 04:03:58
看代码 ,错误出现在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("不等");
}
下一篇
冷饮是小吃吗
多重随机标签