java - 使用toString方法打印出“银行帐户”信息

时间:2012-10-16 21:29:16

标签: java

因此,对于作业,我必须从输入文件中读取格式为:
米勒< ---姓氏
威廉< ---名字
00001< ---账户ID
891692 06< ---账户余额
这四行代表“帐户”。从main方法我必须从另一个名为account的类调用,并在该类中运行一个名为toString()的方法 toString()应该以这种格式打印出这四行:
00001,Miller,William,$ 891692.06

到目前为止,这是我在主要方法中的内容:

 int count = 1;
    while(read.hasNextLine()) {
        String nextLine = read.nextLine();
            account.toString(nextLine);
        if(count %4==0) {
            vector.addAccount(nextLine);
        }
        count++;
    } 

这是我的toString方法中的内容:

public String toString(String line) {
 for(int i = 0; i < position; i++){
  line = info[i]; 
    position++;
     }
     return System.out.println(info[2]+", "+info[0]+", "+info[1]+", "+info[3]);
}

在toString中我收到了return语句的错误,而且我需要格式化info [3](最终应该是帐户余额),这样当它打印时它将以美元表示法形式:$ 00.00 < / p>

非常感谢任何帮助!谢谢!

4 个答案:

答案 0 :(得分:3)

您不能return System.out.println(...);

您的return声明应如下所示:

return info[2]+", "+info[0]+", "+info[1]+", "+info[3];

答案 1 :(得分:1)

此代码存在2个问题。第一个是明显的编译错误

return System.out.println(info[2]+", "+info[0]+", "+info[1]+", "+info[3]);

您应该返回String但是对System.out.println的调用不会返回任何内容。它在控制台上打印String。你需要的是

return info[2]+", "+info[0]+", "+info[1]+", "+info[3];

第二个是toString方法的实施。我认为您的作业引用的toString是从toString继承的标准Object方法。这意味着您将拥有一个Account类,您可以在其中传递构造函数中的文件内容,或让Account类解析文件。然后,从文件中读取的值将存储在字段中,而在toString方法中,您将以正确的形式返回这些值。像

这样的东西
public static void main( String[] args ){
  //loop over file and create Account instances
  Account account = new Account( lastName, firstName, ... );
}

public class Account{
  private String lastName, firstName;
  public Account( String lastName, String firstName, ... ){
    this.lastName = lastName;
    this.firstName = firstName;
  }

  @Override
  public String toString(){
    return lastName + ", " + firstName ... ;
  }

}

答案 2 :(得分:0)

您不会从print返回toString语句,而是返回字符串本身。

只需将您的return声明更改为: -

return info[2]+", "+info[0]+", "+info[1]+", "+info[3];

答案 3 :(得分:0)

结合Nambari的提示,您应该尝试以下代码:

int count = 1;
while(read.hasNextLine()) {
    String nextLine = read.nextLine();
        System.out.println(account.toString(nextLine));
    if(count %4==0) {
        vector.addAccount(nextLine);
    }
    count++;
} 

toString方法:

public String toString(String line) {
   for(int i = 0; i < position; i++){
      line = info[i]; 
      position++;
   }
   return info[2]+", "+info[0]+", "+info[1]+", "+info[3];
}