Java读取文件内容比较

用Java从txt文件读取字符串内容,读取出来进行比较,相同的字符却不能相等,比如从txt读取出string="123",但是读出来后用它比较如if(string=="123") { }
if判断是false,望大神指教

11个回答

两个不同对象比较,当然返回的是false了

在java中对比较字符串是否相等一般用equals方法

比较字符串内容 是否相等一般用equals方法

if(string.equals("123")){ }

字符串之间用equals是比较是否一样

== ,判断的是内存地址。看多个引用是否指向,同一个对象。equals 比较的是内容,是值。如果==为true
,equals 返回值也一定是true,反之则不然。String.equals().重写了object的equals方法,你可以看jdk源码,
就可以知道他们的真面目

对string一般用equals

== 比较的是地址 ,.equals()比较的是内容 String类复写了object的equeals()

这么跟你说吧,在java中什么都可以看做是一个对象, 没错,你的String也是一个对象,它指向了一段值为“123”的内存, 你从txt文件中读取出来的“123”也是一个对象。 在java中你如果想返回true的话,就得使用equals方法,这个方法就是用来比较对象中的值用的。而“==”这个方法实际上比较的是两个对象的地址
根据你提的这个问题我估计你还无法理解地址是什么,但是你要记住的是equals比较的是对象的值,“==”对比的是两个对象的地址

==    比较的是 数据类型的值 或者 引用变量的对应值的存储地址 

equals 比较的是 引用对象的内容

例如:字符串1“love”指向引用变量a,字符串2“love”也指向另一个引用变量b;
然而 a和b中的“love”是指向不同的 也就是他们的位置不同 但是内容相同的

所以a.equals(b)为true 而a==b为 false;

若果说 a和b是指向同一个位置的“love” 那么equals和==都是true;

共11条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问