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

时间:2018-08-23 13:36:17

标签: java arraylist

所以基本上我要制作一个菜单,涉及到这个。

  
      
  1. 客户列表(按此按钮时,它将加载我添加的客户列表)。
  2.   
  3. 添加客户端(添加客户端)
  4.   
  5. 编辑客户端
  6.   
  7. 删除客户端。
  8.   

我需要帮助的地方是客户列表,当我按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 个答案:

答案 0 :(得分:0)

我认为您真正的问题是您难以正确打印列表,因此您认为您尚未将输入内容添加到列表中。 (实际上……我想您有……)

这是您尝试打印列表的方法:

    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循环的主体!是的... 空声明 !!

    摆脱那个分号,它不应该在那里。