我對Java和一般編程(比如一個月的經驗)頗爲陌生,我有這個任務。該程序必須從文本文件中提取信息並以各種方式對其進行排序。文本文件中的數據始終按給定順序以CSV格式存儲:標題,劇情,年份,運行時間,評分,演員,導演。總會有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
非常感謝您抽出寶貴的時間打印此頁。這種清除了一些東西。我仍然對如何基於文本文件中的內容創建和填充比較器感到困惑。只要格式正確,該程序應該可以與插入其中的任何文本文件一起使用。 – BaconTocino