-1

因此,对于作业,我必须从格式如下的输入文件中读取:
Miller <--- last name
William <---first name
00001 <--- account ID
891692 06 <--- account balance
这四行代表一个“帐户”。从一个主要方法中,我必须从另一个名为 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 中,返回语句出现错误,并且我需要格式化 info[3](最终应该是帐户余额),以便在打印时以美元表示:$00.00

任何帮助深表感谢!谢谢!

4

4 回答 4

3

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

您的return陈述应如下所示:

return info[2]+", "+info[0]+", "+info[1]+", "+info[3];
于 2012-10-16T21:29:58.993 回答
1

此代码有 2 个问题。首先是明显的编译错误

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

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

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

第二个是你的toString方法的实现。我认为toString您的作业所指的是toStringObject. 这意味着您将有一个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 ... ;
  }

}
于 2012-10-16T21:37:42.050 回答
0

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

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

return info[2]+", "+info[0]+", "+info[1]+", "+info[3];
于 2012-10-16T21:30:24.870 回答
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];
}
于 2012-10-16T21:33:08.947 回答