看板 java 關於我們 聯絡資訊
※ 引述《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