簡體   English   中英

使用Java從文本文件中提取內容

[英]Extract content from text file using java

我有一個這樣布置的文本文件:

57363 Joy Ryder D D C P H H C D
72992 Laura Norder H H H D D H H H
71258 Eileen Over C F C D C C C P
70541 Ben Dover F F F P C C C F
46485 Justin Time F C F C D P D H
61391 Anna Conda D D F D D F D D
88985 Bob Down P F P F P F P P

我有下面的代碼讀取:

Scanner keyboard = new Scanner(System.in);
        System.out.println("Filename: ");
        // C:\\Users\\Vick\\PT\\accountFilesDemo_17259747\\src\\accountFilesDemo_17259747\\Grades.txt
        String filename = keyboard.nextLine();

        File myfile = new File(filename);

        try {
            Scanner inputFile = new Scanner(myfile);
            while(inputFile.hasNext())
            {
                String str = inputFile.nextLine();
                System.out.println(str);
            }
            inputFile.close();
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

現在,我想知道如何獲取前5位數字的學生ID並將它們存儲在某個位置,然后在學生命名8個字母(即DDCPHHCD)之后,如何將它們放在某個位置以保存1-8的值然后我需要將它們加起來並做一些數學運算以獲得總計,然后如何將這兩個學生ID和總計寫成單獨的文本文件?

提示:

  1. 使用Scanner將每一行分解成多個組件。

  2. 創建一個類來保存每一行中的信息。

  3. 如果事先知道數組中有多少個元素,請使用數組;如果不知道,請使用列表(例如ArrayList )。

  4. 一旦填充了數據結構,然后進行算術運算並打印結果就很簡單了。

這些提示回答了您的大多數問題。 但我不會為您編寫作業。

這個怎么樣:

String str = "57363 Joy Ryder D D C P H H C D";
String[] items = str.split(" ");

您可以使用掃描儀來分隔一行的標記。

String str = "57363 Joy Ryder D D C P H H C D";

    Scanner tokens = new Scanner(str);

    String studentID = tokens.next();

    String name = tokens.next();

    String surname = tokens.next();

    String letters = "";

    while(tokens.hasNext())
    {
        letters = letters + tokens.next() + " ";
    }

    System.out.println("ID = " + studentID +
                       "\nNAME = " + name +
                       "\nSURNAME = " + surname + 
                       "\nLETTERS = "+ letters);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM