将对象的int变量与字符串

时间:2017-10-13 11:21:45

标签: java arrays list casting compare

我正在拍摄电影发行年的字符串,以及电影的ArrayList(String title,int release year,enum genre等......)。参数 String year 是搜索的用户输入,将与每部电影进行比较,以找到具有匹配发行年份的电影。匹配项将保存到ArrayList中。通过将参数保持为(String year,ArrayList films),如何将每个电影的年份与用户一年的输入进行比较?我试过铸造这些但是没有成功。

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;
}

3 个答案:

答案 0 :(得分:3)

您可以在字符串版本上使用Integer.parseInt(),在进行比较之前将其转换为整数:

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

或者您可以在年份的int版本上使用String.valueOf,将其转换为字符串:

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

答案 1 :(得分: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;
}

答案 2 :(得分:0)

比较之前将字符串年转换为int年。用下面的代码块替换你的代码块,希望它会有所帮助

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;
}