2017-10-13 154 views
0

我正在接受一個電影的發行年份的字符串和電影的ArrayList(字符串標題,int發佈年份,枚舉流派等)。參數字符串年是搜索的用戶輸入,它將與每部電影進行比較以找到具有匹配發行年份的電影。這些匹配將被保存到ArrayList中。通過保留參數(String year,ArrayList電影),我怎樣才能比較每個電影的年份和用戶輸入的一年來搜索?我曾嘗試鑄造這些但未成功。比較一個對象的int變量與一個字符串

public ArrayList<Film> compareYear(String year, ArrayList<Film> films)       
{ 
    ArrayList<Film> yearMatches = new ArrayList<Film>(); 
    for(Film f : films)     //search through ArrayList of films 
    { 
     int years = f.getYear();   //gets the year for each film and compares it to user input search "year" 
     if(years == year) { 
      yearMatches.add(f); 
     } 
    } 
    return yearMatches; 
} 
+0

在這裏看到:https://stackoverflow.com/questions/513832你如何COMPRE串 – tomas

+0

將字符串轉換爲int或int值一個字符串並進行比較 – Jens

+0

我能說什麼。你怎麼樣*不要*花一年的時間作爲字符串,而是需要一年爲'int'? –

回答

3

您可以在字符串版本使用Integer.parseInt(),做你的比較之前將其轉換爲一個整數:

if (years == Integer.parseInt(year)) 

或者你可以在一年中的INT版本中使用String.valueOf,將其轉換字符串:

if (String.valueOf(years).equals(year)) 
0

可以使用Integer.parseInt(String value)將字符串轉換成int。 我還注意到,您的方法返回結果的不存在的名單(releaseYearMatches這必須是yearMatches),所以我固定在比較之前,您藏漢

public ArrayList<Film> compareYear(String pYear, ArrayList<Film> pFilms)       
{ 
    int year = Integer.parseInt(pYear); 
    ArrayList<Film> yearMatches = new ArrayList<Film>(); 
    for(Film f : pFilms) { 
     if(f.getYear() == year) 
      yearMatches.add(f); 
    } 
    return yearMatches; 
} 
0

將字符串一年的年整型。下面的代碼塊替換您的代碼塊,希望這將有助於

public ArrayList<Film> compareYear(String year, ArrayList<Film> films)       
{ 
    int yearInt = Integer.parseInt(year); 
    ArrayList<Film> yearMatches = new ArrayList<Film>(); 
    for(Film f : films)     //search through ArrayList of films 
    { 
     int years = f.getYear();   //gets the year for each film and compares it to user input search "year" 
     if(years == yearInt) { 
      yearMatches.add(f); 
     } 
    } 
    return releaseYearMatches; 
} 
相關問題