【发布时间】:2016-01-01 16:36:56
【问题描述】:
我对 Java 和一般编程很陌生(比如一个月的经验),我有这个任务。程序必须从文本文件中提取信息并以各种方式对其进行排序。文本文件中的数据始终按给定顺序以 CSV 格式存储:Title、Plot、Year、Runtime、Rating、Actors、Director。将始终有 3 行文本。我已经尽可能地提取数据并将其分成数组,但我坚持如何对其进行排序。它需要排序的方式是最短/最长运行时间、最旧/最新电影以及按评级显示。我尝试转换为 int 数组和 arrayList,但我不确定如何实现任何东西。如果有人可以帮助我,那就太棒了。基本上我只是对如何对数据进行排序感到困惑。这是我目前所拥有的:
import java.io.FileNotFoundException;
import java.io.File;
import java.util.Scanner;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class movieData{
public static void main(String[] args){
String fileName = "./movies.txt";
String[] lines = new String[3];
readFile(lines, fileName);
} //end main
//method used for populating a String array with data from a file.
//input: String[], String
//output: none #Array has been modified
public static void readFile(String[] lines, String fileName){
int counter = 0;
try{
Scanner fromFile = new Scanner(new File(fileName));
while(fromFile.hasNextLine()){
lines[counter] = fromFile.nextLine();
counter++;
}//end while
}//end try block
catch(FileNotFoundException e){
System.out.println("File not found.");
}//end catch block
displayMenu(lines);
}//end readFile
public static void displayMenu(String[] lines){
Scanner kb = new Scanner(System.in);
int choice;
while(true){
System.out.println("\n1: Display all movies");
System.out.println("2: Display shortest movie");
System.out.println("3: Display longest movie");
System.out.println("4: Display oldest movie");
System.out.println("5: Display newest movie");
System.out.println("6: Display movies by rating");
System.out.println("0: Quit the program");
System.out.print("Choice: ");
choice = kb.nextInt();
if(choice == 0)
break;
options(choice, lines);
}//end while
}//end displayMenu
public static void options(int choice, String[] lines){
if(choice == 1){
System.out.println("Movie 1: "+lines[0]);
System.out.println("Movie 2: "+lines[1]);
System.out.println("Movie 3: "+lines[2]);
}//end if
if(choice == 2){
oldestMovie(lines);
}//end if
}//end options
public static void oldestMovie(String[] lines){
}//end oldestMovie
}//end class
我应该使用的文本文件是这样填充的:
The Matrix Machines enslave humans with virtual reality 1999 136 R Keanu Reeves and Laurence Fishburne Wachowski Brothers
Pulp Fiction Two thugs boxer and crime boss meet their fates 1994 154 R John Travolta and Samuel L. Jackson Quentin Tarantino
Blade Runner Futuristic detective hunts obsolete androids 1982 122 R Harrison Ford and Sean Young Ridley Scott
【问题讨论】: