【问题标题】:Create an Array that allows users to input data up to 3 times but each input can be done separately instead of completing it at a go创建一个数组,允许用户最多输入 3 次数据,但每次输入都可以单独完成,而不是一次完成
【发布时间】:2015-04-16 16:05:03
【问题描述】:

我如何创建一个数组,允许用户在不同的时间间隔输入他们的名字。 目前,我需要一次输入所有名称以填充数组。并且在用名称填充数组时,一旦我选择将数据新名称输入到名称数组中,之前键入的信息就会消失。

我希望达到的目标: 1) 允许用户一次输入一个名称并返回主菜单,而不需要填写整个名称数组。

2) 输入第一个名字后,当我尝试在第二个间隔中键入另一个新名字时,我之前键入的现有名字仍然存在,第二个名字将存储在位置 2 而不是 1。

代码如下:

import java.util.Scanner;
 import java.util.*;
 public class test
{
    public static void main(String[] args)
   {

       Scanner console = new Scanner (System.in);
       int[] values = new int[3];
       int[] pNumber= new int[3];
       String[] name= new String[3];
       //double[] height= new double[25];
       //double[] weight=new double[25];
       char choose;
       do
       {
           displayMenu();
           String choice=console.nextLine();
           choose=choice.charAt(0);
           switch(choose)
           {
               case '1' : queuePatient(pNumber,name);
               //case '1' : queuePatient(studentNumber,name,height,weight);
                          break; 
              /*case '2' : callNextPatient(pNumber,name);
                          break;
               case '3' : listPatients(pNumber,name);
                          break;
               case '4' : searchPatient(pNumber,name);
                          break; */   
               case '0' : System.out.println("Exit");  
                          break;     
               default : System.out.println("Invalid");
                         break; 
           }
       }while(choose!='0');
       System.exit(0);
    }
   private static void displayMenu()
   {
        System.out.println("\n Menu: "); 
        System.out.println("1. Queue a Patient: "); 
        System.out.println("2. Call Next Patient: "); 
        System.out.println("3. List Patients in Queue: ");
        System.out.println("4. Search A Patient's Queue Position ");
        System.out.println("0. Exit ");
        System.out.print("Enter your choice: "); 
   }


    private static void queuePatient(int[] pNumber,String[] name)
     {
        Scanner kb = new Scanner (System.in);


        for(int i = 0 ;i <= 3;i++)
               {   
                   if(i==3){
               System.out.println("Queue is full."); 
                 break; 
                           } 
                System.out.println("Patient Number " + (i+1));
                System.out.print("Enter the Patient Name: \n");
                name[i] = kb.nextLine();

                  System.out.println(Arrays.toString(name));
                  break;

                }
      }


    }


/*

private static void callNextPatient(String[] pNumber,String[] name)
{
  System.out.println("S/No  " + "Queue No   " + "Patient Name \t \t \t" );
        for(int n=0;n<25;n++)
        {
            if(!pNumber[n].equals("END"))
            {

 System.out.println((n+1) +"\t"+ pNumber[n] +"\t" + name[n]+"\t"+ "\t"+ "\t");
            }
            else
            break;
}

private static void listPatients(String[] pNumber,String[] name)
   {
        System.out.println("S/No  " + "Queue No   " + "Patient Name \t \t \t" );
        for(int n=0;n<25;n++)
        {
            if(!pNumber[n].equals("END"))
            {

 System.out.println((n+1) +"\t"+ pNumber[n] +"\t" + name[n]+"\t"+ "\t"+ "\t");
            }
            else
            break;
        }
    }

private static void searchPatient(String[] pNumber,String[] name)
{
  System.out.println("S/No  " + "Queue No   " + "Patient Name \t \t \t" );
        for(int n=0;n<25;n++)
        {
            if(!pNumber[n].equals("END"))
            {

 System.out.println((n+1) +"\t"+ pNumber[n] +"\t" + name[n]+"\t"+ "\t"+ "\t");
            }
            else
            break;
}*/

【问题讨论】:

    标签: java arrays sorting multidimensional-array arraylist


    【解决方案1】:

    您可以使用 ArrayList。

    要创建 ArrayList,请执行以下操作:

    ArrayList<String> arrayName = new ArrayList<String>();
    

    要将元素添加到该数组,请执行以下操作:

    arrayName.add("new element");
    

    您可以在这里了解更多信息:http://www.homeandlearn.co.uk/java/array_lists.html

    【讨论】:

    • 亲爱的 Connorelsea,非常感谢您的回复。但我似乎无法理解你的意思。我会仔细阅读你所说的。我已经尝试了 4 天不同的方法,但似乎没有解决或更接近我的目标。我在上面附上了我的代码,你能给我建议吗?真诚的,
    • 你的问题真的没有意义。如果您想使用普通数组,则只需通过执行“variablename[x] = “new name””来访问其元素,其中 x 是您要编辑的索引的编号。如果您可以提供更清晰的问题,那么也许我可以提供帮助?我不确定你想要什么。
    • 我需要携带一个阵列,该阵列可维护最多 25 名患者的列表。患者姓名存储在队列中,系统将允许诊所工作人员执行以下任务: - 排队患者
    • 方法 queuePatient() 将患者排队。该方法接收参数:姓名数组、患者姓名和跟踪系统中排队患者数量的计数。如果队列已满,则该方法显示消息队列已满。如果队列未满,该方法应将患者姓名放入队列中,更新计数并按以下格式显示消息:姓名在位#n 其中 name 是进入队列的患者姓名,n 是从 1 开始的数字。
    猜你喜欢
    • 2015-01-03
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 2013-08-05
    • 1970-01-01
    • 1970-01-01
    • 2015-07-14
    相关资源
    最近更新 更多