-1

したがって、割り当てについては、次のようにフォーマットされた入力ファイルから読み取る必要があります。
ミラー<---姓
ウィリアム<---名
00001<---アカウント
ID89169206<---アカウント残高
これらの4行「アカウント」を表します。メインメソッドから、accountという別のクラスから呼び出して、toString()というそのクラスのメソッドを実行する必要があります。toString
()は、これらの4行を次の形式で出力することになっています:
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

どんな助けでも大歓迎です!ありがとう!

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つの問題があります。1つ目は明らかなコンパイルエラーです

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];

2つ目は、メソッドの実装ですtoStringtoStringあなたの割り当てが参照しているのは、toStringから継承された標準的なメソッドだと思いますObjectAccountつまり、コンストラクターでファイルの内容を渡すか、クラスにファイルを解析させるクラス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

ナンバリのヒントを取り入れて、次のコードとして試してみてください。

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 に答える