Java printf()方法中出现错误
我需要帮助来修复我的代码。我不知道问题出在哪里,但在Java printf()方法中出现错误,java,printf,Java,Printf,我需要帮助来修复我的代码。我不知道问题出在哪里,但在printf中,当我运行此代码时,编译器似乎给了我错误。为什么? Employee emp1 = new Employee(); emp1.setFname("Kim"); emp1.setLname("Yee"); emp1.setID(101); emp1.setSalary(40000); Employee emp2 = new Employee(); emp2.setFname("Lana"); emp2.setLname("Yu
printf
中,当我运行此代码时,编译器似乎给了我错误。为什么?
Employee emp1 = new Employee();
emp1.setFname("Kim");
emp1.setLname("Yee");
emp1.setID(101);
emp1.setSalary(40000);
Employee emp2 = new Employee();
emp2.setFname("Lana");
emp2.setLname("Yum");
emp2.setID(102);
emp2.setSalary(55.000);
Employee emp3 = new Employee();
emp3.setFname("Alex");
emp3.setLname("Jhone");
emp3.setID(103);
emp3.setSalary(55.500);
Employee emp4 = new Employee();
emp4.setFname("joe");
emp4.setLname("mac");
emp4.setID(104);
emp4.setSalary(74.000);
System.out.println("Employee Name \t Employee ID \t Employee salary");
System.out.printf("%s %s\t%d\t$%f\n", emp1.getFname() + "" + emp1.getLname(), emp1.getID(), emp1.getSalary());
System.out.printf("%s %s\t%d\t$%f\n", emp2.getFname() + "" + emp2.getLname(), emp2.getID(), emp2.getSalary());
System.out.printf("%s %s\t%d\t$%f\n", emp3.getFname() + "" + emp3.getLname(), emp3.getID(), emp3.getSalary());
System.out.printf("%s %s\t%d\t$%f\n", emp4.getFname() + "" + emp4.getLname(), emp4.getID(), emp4.getSalary());
这就是罪魁祸首:
emp1.getFname()+""+emp1.getLname()
正上方的表达式是一个字符串。使用:
System.out.printf("%s\t%d\t$%f\n", emp1.getFname()+""+emp1.getLname(), emp1.getID(),emp1.getSalary());
或
因此,在格式字符串中有匹配数量的参数和格式说明符。我认为
+“”+
应该只是一个,
@Nishant shresh和@hexafrance是正确的。然而,你还没有仔细考虑这个问题。任何时候,如果你有这样重复的代码,你就会错过一个机会。为什么不在Employee
上写一个方法来返回员工的全名呢?你肯定会找到更多的地方在真正的程序中使用它
public String getFullName() {
return fname + " " + lname;
}
一个人应该避免单调乏味的工作。记住拉里·沃尔编程的三大优点:傲慢、急躁和懒惰。你现在应该做额外的工作,这样你以后就可以懒惰了
现在,一个人的名字和姓氏之间的联系比他的身份证和薪水更紧密。此外,即使不是员工,人们也有自己的名字。因此,您应该真正创建一个名称
类,并在员工
(或个人
,或学生
,或客户
…)中使用它,而不是fname
和lname
。然后,当需求发生变化时,您可以对其进行更改。将middleInitial添加到保留名称组件的所有类中有多困难?标题是什么?后缀是什么?你现在可能没有必要这样做,但这是一个判断问题,需要为未来做多少准备
如果你成为一名Java程序员,你可能还想让你的类实现
Java.util.Formattable
。这是一个高级主题。欢迎来到堆栈溢出。请在问题中添加更多详细信息(例如,您收到的错误消息);目前,它有被搁置的风险。请不要使用标签。
System.out.printf("%s %s\t%d\t$%f\n", emp1.getFname(), emp1.getLname(), emp1.getID(),emp1.getSalary());
public String getFullName() {
return fname + " " + lname;
}