Python中文网

一个关于 编程问题的解答网站.

有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java试图读取一个文本文件,使用正则表达式检查每一行

我正在尝试编写一个程序,允许用户输入一部电影的名称,然后程序将生成与之相关的日期。我有一个文本文件,其中有日期和与之相关的电影。我通过扫描仪读取文件,创建了一个电影类,分别存储电影和日期的ArrayList和String。我读文件有困难。谁能帮帮我吗。谢谢!

以下是文本文件的一部分:

10/1/2014   
    Der Anstandige
    "Men, Women and Children"
    Nas: Time is Illmatic

10/2/2014   
    Bang Bang
    Haider

10/3/2014   
    Annabelle
    Bitter Honey
    Breakup Buddies
    La chambre bleue
    Drive Hard
    Gone Girl
    The Good Lie
    A Good Marriage
    The Hero of Color City
    Inner Demons
    Left Behind
    Libertador
    The Supreme Price

这是我的电影课

import java.util.ArrayList;

public class movie
{
    private ArrayList<String> movies;
    private String date;

    public movie(ArrayList<String> movies, String date)
    {
        this.movies = movies;
        this.date = date;
    }

    public String getDate()
    {
        return date;
    }

    public void setDate(String date)
    {
        this.date = date;
    }

    public ArrayList<String> getMovies()
    {
        return movies;
    }
}

下面是readFile类

package Read;

import java.util.List;
import java.io.File;
import java.util.ArrayList;
import java.util.Scanner;

public class readFile
{
    public static List<movie> movies;
    public static String realPath;
    public static ArrayList<String> mov;
    public static String j;
    public static String i;

    public static void main(String[]args)
    {
        //movies = new ArrayList<movie>();
        realPath = "movie_release_dates.txt";
        File f = new File(realPath);
        try
        {
            String regex1 = "[^(0-9).+]";
            String regex2 = "[^0-9$]";

            Scanner sc = new Scanner(f);

            while (sc.hasNextLine())
            {
                System.out.println("Hello");
                //movies
                if(!sc.nextLine().matches(regex2))
                {
                    i = sc.nextLine();
                    System.out.println("Hello2");
                    System.out.println(i);
                }
                //date
                while(sc.nextLine().matches(regex1))
                {
                    System.out.println("Hello3");
                    if(!sc.nextLine().matches(regex1))
                    {
                        j = sc.nextLine();
                        mov.add(sc.nextLine());
                        System.out.println("Hello4");
                    }
                }
                movie movie = new movie(mov,i);
                movies.add(movie);
            }

        //   sc.close();
        }
        catch(Exception e)
        {
            System.out.println("CANT");
        }
    }
}

共 (0) 个答案