作者travellu (旅行)
看板java
标题Re: [问题] string判定相等
时间Sat Jun 12 16:23:28 2010
※ 引述《thnestar (峰)》之铭言:
: 我测试过,如果宣告
: String s1 = "HI";
: String s2 = "HI";
: 虽然位置不同,但是内容都是"HI",
: 如果使用 if(s1 == s2),
: 结果会是true。
: 那我有个疑问。
: 我使用Scanner的next() 函数来让使用者输入一个字串,
: 然後让它与先前设定过的string进行比较,但是都一直无法相等。
: 举例来说,
: String[] s3 = new String[1];
: s3[0] = "HI";
: Scanner keyboard = new Scanner(System.in);
: String s4 = keyboard.next();
: 然後输入 HI
: 接着使用 if(s3[0] == s4)
^^^^^^^^^^^^^^^^
改成if(s3[0].equals(s4))
== 和 .equals 用法是不一样的
一个会比较到变数在记忆体中的位址
一个只会比较变数的内容
: 结果会是false。
: 也就是程式内已经设定,s3的内容是"HI",
: 然後使用者也输入HI给s4,
: 但是为什麽两者会不相等呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.71.170.197