带循环的Java输出错误
我正在编写一个基本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
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);