繁体   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