将多个用户字符串输入存储到Java数组中

将多个用户字符串输入存储到Java数组中,java,arrays,Java,Arrays,我有以下代码。我需要将EmployeeNumber和Name存储到数组中。我不确定我做错了什么: for(int i = 0; i<5; i++) { int numEmps = 0; System.out.print("Enter Employee number: "); employeeNumber = sc.nextLine(); numEmps++; System.out.print("Enter Employee name: ");

我有以下代码。我需要将
EmployeeNumber
Name
存储到
数组中。我不确定我做错了什么:

for(int i = 0; i<5; i++)
{   
    int numEmps = 0;

    System.out.print("Enter Employee number: ");
    employeeNumber = sc.nextLine();
    numEmps++;
    System.out.print("Enter Employee name: ");
    name = sc.nextLine();
    numEmps++;

    employees[numEmps] = new Employee(employeeNumber, name, role, level);
}

对于(int i=0;i首先您必须在循环外使用
int numps=0;

int numEmps = 0;
for(int i = 0; i<5; i++){
  ...
}


注意与评论中提到的@Le Duy Khanh一样,您可以使用
employees[i]
而不是使用新变量

在这里,您将这两个信息存储在
Employee
的数组中
看起来不错。
在循环之前,您应该声明数组:

Employee[] employees = new Employee[5];
此外,在循环中,您不需要使用
numep
(顺便说一句,您增加了两倍,这是不合适的),因为您已经在循环中声明了
int i
值。因此,只需使用
i
作为数组中添加的元素的索引。

这就足够了:

employees[i] = new Employee(employeeNumber, name);
因为您没有在需求和代码中指定
角色
级别
的值。


理想情况下,
employeeNumber=sc.nextLine();
应转换为数值(
int number=Integer.valueOf(employeeNumber)
),如果要将employeeNumber表示为数字(例如int或long).

由于在每次循环迭代中都要将numEmps变量增加两次,因此数组每2个元素就会被填充一次。

int numEmps=0;
for
循环中取出

每次循环时,都会将其重新初始化为零。

int numEmps=0;
int numEmps = 0;

for(int i = 0; i<5; i++)
{
   System.out.print("Enter Employee number: ");

   employeeNumber = sc.nextLine();

   numEmps++;
   System.out.print("Enter Employee name: ");

   name = sc.nextLine();

   numEmps++;

   employees[numEmps] = new Employee(employeeNumber, name, role, level);
}

对于(int i=0;i
Employee
长什么样?为什么不直接使用employees[i]?那么就不需要numEmps++@LeDuyKhanh我们看不到代码的其他部分,所以我们不知道OP想用
numEmps
做什么,但是你的建议也是正确的。我会编辑我的答案。那么你的ans应该是numEmps=[一些值开始]我在第一道题“LeDuyKhanh”中说的话,你检查我的答案了吗?
int numEmps = 0;

for(int i = 0; i<5; i++)
{
   System.out.print("Enter Employee number: ");

   employeeNumber = sc.nextLine();

   numEmps++;
   System.out.print("Enter Employee name: ");

   name = sc.nextLine();

   numEmps++;

   employees[numEmps] = new Employee(employeeNumber, name, role, level);
}