带循环的Java输出错误

带循环的Java输出错误,java,arrays,Java,Arrays,我正在编写一个基本java程序,根据用户输入输出员工姓名、年龄和部门。它可以工作,但输出是取员工的名字,并将其放在其他信息之后的输出中,并且不显示部门。我怀疑这与我正在使用的空格分隔符有关,但我不确定原因。任何帮助都会很棒 代码: 实际产量: Employee Name: Jones Employee Age: 38 Department: Bob Age Is A Prime: false Employee Name: Morris Employee Age: 54 Department: A

我正在编写一个基本java程序,根据用户输入输出员工姓名、年龄和部门。它可以工作,但输出是取员工的名字,并将其放在其他信息之后的输出中,并且不显示部门。我怀疑这与我正在使用的空格分隔符有关,但我不确定原因。任何帮助都会很棒

代码:

实际产量:

Employee Name: Jones Employee Age: 38 Department: Bob Age Is A Prime: false
Employee Name: Morris Employee Age: 54 Department: Alonzo Age Is A Prime: false
Employee Name: Moore Employee Age: 27 Department: Beth Age Is A Prime: false

您正在拆分空间:

String[] inputArray = input.split(" ");
“Bob Jones”包含一个空格。因此,您的拆分可能会导致元素位于不同于您预期的位置

如果所有文件条目都将以空格格式跟随“两个名称”,请尝试以下更改:

 String department = inputArray[0];
 String fullName = inputArray[1] + " " + inputArray[2]
 int age = Integer.parseInt(inputArray[3]);

 Department d = c.checkDepartment(department);
 d.newEmployee(age, fullName, d);
分割使用的实际数字显然取决于每条线的结构。此拆分假定行采用以下格式:

营销鲍勃·琼斯54

但最好的做法是用引号将每个条目括起来,然后使用正则表达式拆分每个“元素”()。这样做既可以:

  • “营销”“鲍勃·琼斯”“54”
  • 市场营销“Bob”54

可以用相同的代码从相同的文件中处理。

猜测您的输入,我想说这就是您想要的:

 String[] inputArray = input.split(" ");
 Department d = c.checkDepartment(inputArray[3]);
 d.newEmployee(Integer.parseInt(inputArray[2]), inputArray[0] + " " + inputArray[1], d);

请注意,
split
会在所有空格上拆分,包括每位员工的名字和姓氏。

如果您向我们展示实际产生输出的代码,那该有多好?请给我们输入:)请注意,您永远无法可靠地在空格上拆分姓名-有有效的名字和姓氏,其中包含空格而不是连字符,例如“Anna Mae van der Westhuizen”例如
 String department = inputArray[0];
 String fullName = inputArray[1] + " " + inputArray[2]
 int age = Integer.parseInt(inputArray[3]);

 Department d = c.checkDepartment(department);
 d.newEmployee(age, fullName, d);
 String[] inputArray = input.split(" ");
 Department d = c.checkDepartment(inputArray[3]);
 d.newEmployee(Integer.parseInt(inputArray[2]), inputArray[0] + " " + inputArray[1], d);