簡體   English   中英

從陣列列表中打印特定部分

[英]Printing a specific part from an Array List

所以我有一個Arraylist,它持有一個類,如下面的代碼所示。

NewStorage.java是包含以下代碼的文件的名稱

package postit;

import java.util.ArrayList;
import java.util.Scanner;

public class NewStorage extends NoteInfomation {

    Scanner inputID = new Scanner(System.in);
    Scanner NoteID = new Scanner(System.in);

    int count = 0;

    ArrayList<NoteInfomation> Note = new ArrayList<NoteInfomation>(20);

    public void printinfo() {
        System.out.println("--- Fill note here  ---");
    }

    public void Notestore() {

        System.out.println("Enter the note ID you wish to attach the note with\n\n");
        inputIDnote = inputID.nextLine();
        System.out.println("Enter your note\n\n");
        noteDescription = NoteID.nextLine();
        System.out.println("" + inputIDnote);
        System.out.println("" + noteDescription);
    }

    public void PrintNotes() {

        for (int i = 0; i < Note.size(); i++) {
            System.out.println(" " + Note.get(i));

        }
    }
}

這是名為Postit.java的主文件,如下所示

package postit;

import java.util.Scanner;

public class Postit {

    public static void main(String[] args) {
        int MenuOption = 0;

        NewStorage G = new NewStorage();    // Case 1 Object

        while (MenuOption != 3) {

            System.out.println(
                    "\n--------Note System-------\n" +
                            "----------------------------\n" +
                            "1.   Create a Note \n" +
                            "2.   View Notes \n" +
                            "3.   Close Program\n" +
                            "----------------------------\n"
            );

            Scanner menu = new Scanner(System.in);
            MenuOption = menu.nextInt();

            switch (MenuOption) {
                case 1:
                    G.printinfo();
                    G.Notestore();
                    break;
                case 2:
                    G.PrintNotes();
                    break;
                case 3:
                    System.out.println("Program is closing");
                    System.exit(0);
                    break;
                default:
                    System.out.println("Invalid choice.");
                    break;
            }
        }
    }
}

最后,這是note.java文件,其中包含用於數組的NoteInfomation類。

package postit;

class NoteInfomation {
    String inputIDnote;
    String noteDescription;
}

因此,我的問題是,如代碼中所示,程序應該詢問用戶他們也想為其分配便箋的便箋ID。 然后,用戶可以通過輸入相應的注釋ID來查看他們創建的注釋。 理想情況下,當我以該程序為基礎時,我還希望該程序讓用戶從以前創建的ID列表中進行選擇,以記住創建的便箋的ID不會成為問題。 提前致謝。

您的代碼中有很多錯誤。 您沒有在Notestore()方法中存儲任何筆記。 PrintNode()也不起作用。

將您的代碼更改為這樣。

注意Infomation.java

class NoteInfomation {
    String inputIDnote;
    String noteDescription;
    public NoteInfomation(String inputIDnote, String noteDescription) {
        this.inputIDnote = inputIDnote;
        this.noteDescription = noteDescription;
    }
    @Override
    public String toString() {
        return "Id:" + inputIDnote + ", Description: " + noteDescription;
    }
}

Nodestore()方法...

public void Notestore() {

    System.out.println("Enter the note ID you wish to attach the note with\n\n");
    String inputIDnote = inputID.nextLine();
    System.out.println("Enter your note\n\n");
    String noteDescription = inputID.nextLine();  //No need for two scanner
    System.out.println("" + inputIDnote + "\n" + noteDescription);
    Note.add(new NoteInfomation(inputIDnote, noteDescription));
}

PrintNotes()方法

public void PrintNotes() {

    for (int i = 0; i < Note.size(); i++) {
        System.out.println(" " + Note.get(i).toString());

        //**or you can also use this
        //  System.out.println("Id:" + Note.get(i).inputIDnote + ", Description: " + Note.get(i).noteDescription);

    }
}

我鼓勵您學習ArrayList的工作方式。

暫無
暫無

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

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