[問題] 關於Scanner使用一問

作者: mistus (mistus)   2014-11-15 22:57:08
大大們如果我問了蠢問題的話十分抱歉...
我花了不少時間翻網站爬文卻解決不了問題只好跑來發問 - " -..
String input;
Scanner s = new Scanner(System.in);
input = s.next();
if(input =="A")
{System.out.print("OK");}
為什麼我怎麼輸入條件都不會是true
Debug也是字串A沒錯阿OAQ ...
問了蠢問題的話抱歉Orz
作者: Kennyq (舞光十射~*)   2014-11-15 22:59:00
字串是物件, 要用equals兩個字串A的reference不會相同,所以用==會是falseJ2SE-API-java.lang.Stringpublic boolean equals(Object anObject)Compares this string to the specified object.以上算是物件導向的基本...你還有很長遠的路...
作者: mistus (mistus)   2014-11-16 10:11:00
謝謝,, 雖然知道字串好像是大家共用放在記憶體的某個位置但沒想到會有這種差異OAO.
作者: carylorrk (carylorrk)   2014-11-16 10:40:00
這跟那是兩回事...
作者: mistus (mistus)   2014-11-16 11:31:00
好 我研究研究XDD
作者: ghostduke (胡小小)   2014-11-17 10:37:00
input.equals("A") 試看看!?
作者: realmeat (真肉)   2014-11-17 14:04:00
"A".equals(input) 反著寫更好, bj4
作者: gimmy731031 (yuancheng)   2014-11-20 23:29:00
因為input有可能是null,會拋exception...

Links booklink

Contact Us: admin [ a t ] ucptt.com