如何只打印出符合特定条件的文件中的行?

时间:2015-02-05 18:11:51

标签: java eclipse list text

我需要导入一个文件并让扫描仪只打印列表中的电影。电影始终是该行中的第一个单词,并且格式总是这样,它们将显示为标题,然后是括号中的年份:

  

拯救大兵瑞恩(1998)

在电影标题之后会有一个/然后是一个演员名称,格式化为姓氏,名字,然后是另一个斜杠,然后是下一个演员姓名。当电影的演员全部被列出时,行结束并且下一行的另一部电影也会发生同样的事情。

我如何制作一个代码,列出所有电影中的某个演员,列出某部电影的所有演员,列出所有电影(没有演员),列出所有电影中发布的电影某一年等等?

1 个答案:

答案 0 :(得分:0)

你可以这样做:

    ArrayList<String> allMovies = new ArrayList<String>();

    for (String movie : allMovies)
    {
        if (movie.contains("Tom Hanks"))
            System.out.println(movie);
    }

或者如果您想要更具体,可以使用split()

将每部电影分成不同的类别(标题,演员,年份)
String[] arr = movie.split("/");

编辑:

对不起,我以为你把你的电影放在了一个列表中,但这个想法仍然是一样的。您希望遍历扫描仪中的每个影片,如果它包含匹配的短语,则需要将其打印出来。像这样:

while (scanner.hasNext())
{
    String movie = scanner.next();
    //split the movie by "/"
    String[] arr = movie.split("/");
    //if movie contains phrase, print it out
    if (movie.contains("Tom Hanks"))
    {
        //print out title
        System.out.println(arr[0]);
    }
}

或者像我之前提到的那样你可以用正斜杠分割电影