gpt4 book ai didi

java - 为什么这段代码不能识别这两个变量是相同的?

转载 作者:行者123 更新时间:2023-12-02 00:24:14 24 4
gpt4 key购买 nike

嘿,我正在尝试从用户那里获取字符串输入(在本例中是电影的名称,例如 Good Burger)。我有一个 Film 类的数组列表,我正在从中迭代。在每次迭代中,调用类 Film 实例中的一个方法,该方法返回电影名称的字符串。当我比较这两个时,它似乎没有意识到它们是相等的,我也不明白为什么。

这是获取输入并比较两者的代码:

//获取用户输入的影片。

    int numberOfFilmsCheck;
numberOfFilmsCheck = 0;
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
Film tempFilm;
System.out.println("Please enter the names of the films you wish to be in the new schedule");
System.out.println("Press enter after each one.");

while(numberOfFilmsCheck < numberOfFilms){
boolean foundFilm;
foundFilm = false;
String inputFilmName = null;
tempFilm = null;
String filmName;
filmName = null;
try{
inputFilmName = reader.readLine();
System.out.println(inputFilmName);
}
catch (IOException e){
System.out.println("Error");
}

for(Film film : films){
film.printFilmName();
if(inputFilmName.equals(filmName)){
foundFilm = true;
tempFilm = film;
System.out.println("Found film name");
break;
}
}

if(foundFilm == true){
newFilmsForSchedule.add(tempFilm);
numberOfFilmsCheck++;
}
else{
System.out.println("The film you entered has not been recognised.");
System.out.println("Please enter the film name as shown above.");
}

下面是 Film 类中返回电影名称的代码:

public String getFilmName()
{
return filmName;
}

如果您发现其中有任何流氓打印语句,那只是我在检查代码是否正常工作。

非常感谢任何帮助!谢谢

最佳答案

getFilmName() 函数看起来非常有用,但前提是您最终调用了它:-)

您似乎在开始时将 filmName 设置为 null,然后您实际上从未更改它(例如,通过调用 getFilmName() )。因此,出于比较目的,它将为空。

我怀疑您可能需要类似的东西:

for(Film film : films){
film.printFilmName();
filmName = film.getFilmName(); // <-- Added this.
if(inputFilmName.equals(filmName)){ // <-- So that this works.
foundFilm = true;
tempFilm = film;
System.out.println("Found film name");
break;
}
}

关于java - 为什么这段代码不能识别这两个变量是相同的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10343227/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com