将多个用户字符串输入存储到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;iEmployee
长什么样?为什么不直接使用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);
}