ねえ、ユーザーから文字列入力を取得しようとしています (この場合は映画の名前、たとえば Good Burger)。クラス Film の配列リストがあり、そこから反復処理を行っています。各反復で、Film クラスのインスタンスのメソッドが呼び出され、フィルム名の文字列が返されます。これら2つを比較していると、それらが等しいことを認識していないようで、その理由がわかりません。
入力を取得して 2 つを比較するコードは次のとおりです。
//ユーザーが入力したフィルムを取得します。
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;
}
そこに不正な印刷ステートメントがあることに気付いた場合は、コードが正しく機能しているかどうかを確認しているだけです。
どんな助けでも大歓迎です!ありがとう