toString()方法问题

时间:2010-05-08 00:46:04

标签: java

我一直在做这个作业的代码:

public class Student
{
 private String fname;
 private String lname;
 private String studentId;
 private double gpa;

 public Student(String studentFname,String studentLname,String stuId,double studentGpa)
 {
  fname     = studentFname;
  lname     = studentLname;
  studentId = stuId;
  gpa       = studentGpa;
 }

 public double getGpa()
 {
  return gpa;
 }

 public String getStudentId()
 {
  return studentId;
 }

 public String getName()
 {
  return lname + ", " + fname;
 }
 public void setGpa(double gpaReplacement)
 {
  if (gpaReplacement >= 0.0 && gpaReplacement <= 4.0)
   gpa = gpaReplacement;
  else
   System.out.println("Invalid GPA! Please try again.");
  System.exit(0);
 }
}

现在我需要创建一个toString()方法,该方法返回一个格式如下的字符串:

Name: Wilson, Mary Ann
ID number: 12345
GPA: 3.5

4 个答案:

答案 0 :(得分:3)

@Override
public String toString() {
    return "Name: " + getName() + "\n" +
            "ID Number: " + studentId + "\n" +
            "GPA: " + gpa;
}

答案 1 :(得分:2)

查看你的getName方法。您可以为toString使用相同的想法(实际上是getName本身)。您可能不知道的一件事是\ n表示换行符。所以“foo \ nbar”是foo然后是换行符,然后吧。

答案 2 :(得分:2)

只需添加该方法。

public String toString() {
    // TODO: write code according requirements.
}

如果你的实际问题更多,你不知道该怎么做,那么你应该在你的问题中更具体。您是否不知道如何在String中插入换行符?好吧,你可以使用\n

    return String.format(
        "Name: %s, %s\nID number: %d\nGPA: %f", fname, lname, studentId, gpa);

那就是说System#exit()电话非常响亮。最终用户是否真的必须重新启动整个应用程序以获得简单的输入错误?

答案 3 :(得分:2)

public String toString() {
    String output = "Name: " + lname + ", " + fname + "\n" +
                  "ID number: " + studentId + "\n" +
                  "GPA: " + gpa + "\n";
    return output;
}