2017-10-13 115 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; 
} 
相关问题