我试图根据用户输入识别对象,并且不知道它为什么不起作用...
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;
}
}
我打印出"发现它"所以我可以检查它什么时候起作用...但无论我输入正确的字符串,哪一个与已经打印出来的字符串匹配,它都不会等于它。
答案 0 :(得分:1)
由于这两个gameInput
和g.getId()
是字符串类型。
您应该使用equals()
代替==
equals()
比较每个变量的内容
==
比较参考,如果他们正在看同一件事
答案 1 :(得分:1)
更改
if (gameInput == g.getId()){
到
if (gameInput != null && gameInput.equals(g.getId())){