2016-12-05 48 views
-5

以下方法的用途應該檢查用戶的輸入,以使它與來自seriesLibrary對象中包含的arrayList的值相匹配。這是目前不這樣做,儘管如果值是ArrayList中我的驗證方法不起作用,我哪裏錯了?

public static String checkUserInputSeriesName(Scanner sc, SeriesLibrary seriesLibrary){ 
    boolean validInput = false; 
    String seriesName = null; 
    do{ 
     validInput = false; 
     seriesName=sc.nextLine(); 
     for(int i = 0; i < seriesLibrary.getTvSeries().size(); i++){ 
      if(seriesName.equals(seriesLibrary.getTvSeries().get(i))){ 
       validInput = true; 
      }else{ 
       System.out.println("That Series does not exist, please try again!"); 
       sc.nextLine(); 
      } 
     } 
    }while(!validInput); 
    return seriesName; 
} 
+0

你可以把你正在過SeriesLibrary seriesLibrary參數保持輸出別的選擇嗎?因爲那是一個對象而不是一個列表或一個對象數組。 – Gatusko

+0

只是一步一步地運行你的代碼,你會看到會發生什麼 – njzk2

+0

@dur就像我在評論中說的,我意識到else語句目前是問題,但我不知道從那裏去哪裏 – AceVenturos

回答

0
public static String checkUserInputSeriesName(Scanner sc, SeriesLibrary seriesLibrary){ 
    boolean validInput = false; 
    String seriesName = null; 
    do{ 
     validInput = false; 
     seriesName=sc.nextLine(); 
     for(int i = 0; i < seriesLibrary.getTvSeries().size(); i++){ 
      if(seriesName.equals(seriesLibrary.getTvSeries().get(i))){ 
       validInput = true; 
      } 
     } 
     if(!validInput){ 
      System.out.println("That Series does not exist, please try again!"); 
      sc.nextLine(); 
     } 
    }while(!validInput); 
    return seriesName; 
}