Re: [問題] string判定相等
※ 引述《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
討論串 (同標題文章)