Java 比较一个对象';带字符串的s int变量
我正在拍摄一系列电影的发行年份,以及一系列电影(字符串标题、int发行年份、enum流派等)。参数String year是用户输入的搜索,将与每部影片进行比较,以找到具有匹配发行年份的影片。匹配项将保存到ArrayList中。通过将参数保持为(String year,ArrayList films),我如何将每个电影的年份与用户输入的要搜索的年份进行比较?我曾尝试铸造这些,但没有成功Java 比较一个对象';带字符串的s int变量,java,arrays,list,casting,compare,Java,Arrays,List,Casting,Compare,我正在拍摄一系列电影的发行年份,以及一系列电影(字符串标题、int发行年份、enum流派等)。参数String year是用户输入的搜索,将与每部影片进行比较,以找到具有匹配发行年份的影片。匹配项将保存到ArrayList中。通过将参数保持为(String year,ArrayList films),我如何将每个电影的年份与用户输入的要搜索的年份进行比较?我曾尝试铸造这些,但没有成功 public ArrayList<Film> compareYear(String year, Ar
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;
}
public ArrayList compareYear(字符串年,ArrayList电影)
{
ArrayList yearMatches=新的ArrayList();
for(Film f:films)//搜索电影的阵列列表
{
int years=f.getYear();//获取每部电影的年份,并将其与用户输入搜索“年”进行比较
如果(年==年){
增加(f);
}
}
复赛;
}
您可以在字符串版本上使用Integer.parseInt()
将其转换为整数,然后再进行比较:
if (years == Integer.parseInt(year))
或者您可以在年度的int版本上使用String.valueOf
,将其转换为字符串:
if (String.valueOf(years).equals(year))
您可以在字符串版本上使用
Integer.parseInt()
,在进行比较之前将其转换为整数:
if (years == Integer.parseInt(year))
或者您可以在年度的int版本上使用String.valueOf
,将其转换为字符串:
if (String.valueOf(years).equals(year))
您可以使用
Integer.parseInt(字符串值)
将字符串转换为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;
}
public ArrayList compareYear(字符串pYear,ArrayList pFilms)
{
int year=Integer.parseInt(pYear);
ArrayList yearMatches=新的ArrayList();
用于(胶片f:pFilms){
如果(f.getYear()==年)
增加(f);
}
复赛;
}
您可以使用Integer.parseInt(字符串值)
将字符串转换为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;
}
public ArrayList compareYear(字符串pYear,ArrayList pFilms)
{
int year=Integer.parseInt(pYear);
ArrayList yearMatches=新的ArrayList();
用于(胶片f:pFilms){
如果(f.getYear()==年)
增加(f);
}
复赛;
}
比较前,将字符串年份转换为整数年份。用下面的代码块替换您的代码块,希望它能有所帮助
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;
}
public ArrayList compareYear(字符串年,ArrayList电影)
{
int yearInt=Integer.parseInt(年);
ArrayList yearMatches=新的ArrayList();
for(Film f:films)//搜索电影的阵列列表
{
int years=f.getYear();//获取每部电影的年份,并将其与用户输入搜索“年”进行比较
如果(年==yearInt){
增加(f);
}
}
返回releaseYearMatches;
}
比较前,将字符串年份转换为整数年份。用下面的代码块替换您的代码块,希望它能有所帮助
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;
}
public ArrayList compareYear(字符串年,ArrayList电影)
{
int yearInt=Integer.parseInt(年);
ArrayList yearMatches=新的ArrayList();
for(Film f:films)//搜索电影的阵列列表
{
int years=f.getYear();//获取每部电影的年份,并将其与用户输入搜索“年”进行比较
如果(年==yearInt){
增加(f);
}
}
返回releaseYearMatches;
}
请参见此处:如何压缩字符串将字符串转换为int或int转换为字符串并进行比较我能说什么。你不需要把年份作为字符串,而是需要把年份作为int
?另外,该方法的名称不应该是compareYear
,而是querybyear
或类似的名称。请看这里:如何压缩字符串将字符串转换为int或int转换为字符串并进行比较我能说什么。那么,您不需要将年份作为字符串,而是需要将年份作为int
?而且,该方法的名称不应该是compareYear
,而是querybyear
之类的名称。