我正在拍摄电影发行年的字符串,以及电影的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;
}
答案 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;
}