Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 比较一个对象';带字符串的s int变量_Java_Arrays_List_Casting_Compare - Fatal编程技术网

Java 比较一个对象';带字符串的s int变量

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

我正在拍摄一系列电影的发行年份,以及一系列电影(字符串标题、int发行年份、enum流派等)。参数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;
}
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
之类的名称。