我需要将用户输入存储在数组中,但我无法完成此操作。有人可以提供一些建议吗?
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++;
}
答案 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();