我試圖根據用戶輸入識別一個對象,並不知道爲什麼它不工作...爲什麼這兩個變量不相等?
userInput只是一個掃描儀,而allGames是一羣具有ID的「遊戲」類的數組列表像S01,S02等
Game gameToChange = null;
for (Game g : allGames){
System.out.println(g.getId());
}
String gameInput = userInput.nextLine();
System.out.println(gameInput);
for (Game g : allGames){
if (gameInput == g.getId()){
System.out.println("Found it");
gameToChange =g;
}
}
遊戲類:
public abstract class Game {
private String identifier;
public Game(String id){
identifier = id;
}
public String getId(){
return this.identifier;
}
}
我對打印輸出的「發現」只是這樣我就可以在它的工作檢查......但是當我進入不管正確的字符串,與已經打印的字符串相匹配它永遠不會等於它。
在Java中的字符串比較是使用String @ equals而不是'=='來完成的,它比較了String和String的兩個不同實例的內存位置。 。 – MadProgrammer 2014-09-22 06:11:09
重複的http://stackoverflow.com/q/513832/3680684 – herrlock 2014-09-22 06:11:10