将用户输入读入数组

时间:2014-03-16 21:59:31

标签: java arrays

我需要将用户输入存储在数组中,但我无法完成此操作。有人可以提供一些建议吗?

import java.util.Scanner;

public class EmployeeManagement {

    Scanner s = new Scanner(System.in);
    Employee e = new Employee();
    Employee[] arrayOfEmp = new Employee[2];            //Fields
    public static int index;

    public void addRecord(Employee userE, int index){               //Add method
    while(index<arrayOfEmp.length){
        System.out.println("Please enter Employee Id : ");
        e.setEmployeeId(s.next());
        System.out.println("Please enter Employee Name : ");
        e.setName(s.next());
        this.arrayOfEmp[index]=userE;
        index++;
    }

3 个答案:

答案 0 :(得分:1)

那应该是因为你没有在数组中附加正确的值。您追加“userE”这是一个参数,但您在“e”中设置值,这是另一个Employee实例。

答案 1 :(得分:1)

Scanner s = new Scanner(System.in);
Employee[] arrayOfEmp = new Employee[2];            //Fields
public int index;

public int addRecord(int index){               //Add method
    while(index<arrayOfEmp.length){
      Employee e = new Employee();
      System.out.println("Please enter Employee Id : ");
      e.setEmployeeId(Integer.parseInt(s.nextLine()));
      System.out.println("Please enter Employee Name : ");
      e.setName(s.nextLine());
      this.arrayOfEmp[index++]=e;
      return index;
    }

调用它请使用     index = addRecord(index);    那么你的变量索引将由方法中的局部索引var更新。

s.next()已更改为nextLine()

答案 2 :(得分:0)

因为,例如[SUBASH PRAKASH]的名称可以包含空格,您必须使用nextLine()

对于任何其他整数,请使用nextInt()

您应该使用此作为参考:Employee e = new Employee();