有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

ArrayList如何将输入存储到Java列表中

所以基本上我要做一份菜单,包括这个

  1. List of clients ( when pressing this it should load the list of clients I've added).
  2. Add clients ( adding clients )
  3. Edit clients
  4. remove client.

我需要帮助的地方是客户端列表,当我按nr 2(添加客户端并插入名称)时,我希望它被保存到客户端列表中,但我不知道该怎么做,我对java非常陌生

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

    public class Friends {

        public static ArrayList clients=new ArrayList<>();

        public static void a(){


        }


        public static void b (){


        }

        public static void c(){
            System.out.println("c");
        }

        public static void printMenu(){
            System.out.println("==========================");
            System.out.println("Main menu");
            System.out.println("--------------------------");
            System.out.println("1 - List clients");
            System.out.println("2 - Add clients");
            System.out.println("3 - Edit client");
            System.out.println("4 - Remove Client");
            System.out.println("0  -Exit");
            System.out.println("==========================");
            System.out.print("Please enter your choice: ");

        }

        public static int getUserMenu(Scanner s){
            String input = s.nextLine();
            int number = -1;

            try {
                number = Integer.parseInt(input);
            } catch (NumberFormatException e){

            }

            return number;
        }

        public static ArrayList<Integer> addClient(){
            Scanner sc = new Scanner(System. in);

            System.out.print("Please enter a client: ");
            String input = sc.nextLine();
            clients.add(input);
            System.out.println("");


            System.out.println("You have added new client : " + clients);        
            System.out.println("");

            for(int i=0;i<clients.size();i++);
                    {
                        System.out.println("There are " + clients.size());
                    }

            return clients;
        }

        public static void main(String[] args) {

            Scanner sc = new Scanner(System. in);
            int choice= -1;        

                while( choice != 0) {
                printMenu();
                choice = getUserMenu(sc);

                switch ( choice )
                {
                case 1: a(); break;
                case 2: b(); addClient();
                break;
                case 3: c(); break;
                case 0 : System.out.println("Bye!"); break;
                default : System.out.println("Invalid number!");break;

                }

            }
                sc.close();

        }
    }

共 (1) 个答案

  1. # 1 楼答案

    我认为你真正的问题是你很难正确打印列表,这导致你认为你没有将输入添加到列表中。(事实上……我想你有……)

    以下是您打印列表的尝试:

        for(int i=0;i<clients.size();i++);
                {
                    System.out.println("There are " + clients.size());
                }
    

    这有两个问题:

    1. 循环的主体只是打印列表大小。如果你想打印第i个元素,你需要调用clients.get(i)

    2. 实际上,这个循环体根本不是循环体。请看以for(int i=开头的语句。现在看这一行的结尾。你看到分号了吗?这就是for循环的主体!对一句空话

      去掉分号,它不应该在那里