1

私はプログラミングクラスでこれに取り組んでいますが、この問題の一部を乗り越える方法が思いつかないようです。私はいくつかのことを試しましたが、何もうまくいかなかったので、ここで質問して人々の意見を見てみましょう. 私が抱えている問題は、アカウント所有者の名前を取得し、それをその名前と比較して重複があるかどうかを確認する方法が思いつかないことです。その後、私は問題を終わらせることができると信じています。

今の私のコード

    //Account Balancing - 5 Points

    import java.io.*;
    import java.util.*;

    public class Account {
                public static void main(String[] args){
            //File Variables
            String inputFile = "AccountInput.txt";
            String outputFile = "AccountOutput.txt";
            Scanner Document = null;
            PrintWriter NewFile = null;

            try {
                Document = new Scanner(new File(inputFile));
                NewFile = new PrintWriter(new FileOutputStream(outputFile, true));
            }catch (Exception e) {
                System.out.println("Could not find " + inputFile);
                System.exit(0);
                System.out.println("Could not find " + outputFile);
                System.exit(0);
            }

            while(Document.hasNextLine()){
                String line = Document.nextLine();
                String[] pieces = line.split(" ");
                //System.out.println(pieces[0]);
                //System.out.println(pieces[1]);
                //System.out.println(pieces[2]);

                //if statement that checks to see if second word in line is "BALANCE" then checks the first word (name) and sees if the account is new or not
                if (pieces[1].equals("BALANCE")){
                    for(int i=0;i<1;i++){
                        System.out.println(pieces[0]);
                    }
                }
            }
        }
    }
4

3 に答える 3

0

問題が何であるかについて、より具体的に説明できますか。ファイルを読み取ってファイルからアカウント所有者の名前を取得し、それらをユーザー入力と比較する必要があるか、コレクション内のアカウント所有者名を既に取得しており、次に何をすべきかわかりません。あなたのケースが後者の場合は、ベクトルを使用し、.contains("value") メソッドを使用して必要な名前を見つけることができます

于 2013-10-18T16:39:19.277 に答える
0

口座名義人の名前を取得する方法が思いつかないとおっしゃっていますが、すでに入力行をスペースで分割しています。重複したアカウント所有者を検出したいだけの場合は、Set<String>既に見た名前を教えてくれます。ただし、名前でアカウントを検索する必要があるためMap<String, BigDecimal>、アカウント所有者を残高にマップする にそれらを保持することもできます。

浮動小数点はお金に使用すべきではないため、残高にはdoubleまたはなどの浮動小数点形式を使用しないでください。float私はBigDecimal2 の目盛で a を使用しますが、longまたはBigIntegerを使用して残高をセントの整数として保存することもできます。を使用する場合は、驚くほど悪いセマンティクスを持つコンストラクターにBigDecimal注意してください。BigDecimal(double)一時的であっても、浮動小数点形式で金額を取得したことがない場合は、問題ありません。

于 2013-10-18T17:33:33.637 に答える
0

口座名義人の名前は入力の各行の最初の単語ですか? ファイルを介してハッシュマップトロールを作成し、存在しない場合はハッシュマップに名前を追加します。次に、それを使用して出力をマイニングし、それぞれのすべてのメッセージを見つけることができます。

于 2013-10-18T16:35:38.157 に答える