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

帐户持有人的姓名是每行输入的第一个单词?通过文件创建一个哈希映射拖网,如果它不存在,则将其添加到哈希映射中。然后您可以使用它来挖掘输出并查找每个消息的所有消息。

于 2013-10-18T16:35:38.157 回答
0

您能否更具体地说明问题所在。是您需要读取文件并从文件中获取帐户持有人的姓名,然后将它们与用户输入进行比较,还是您已经在集合中获得了帐户持有人的姓名并且无法确定下一步该做什么。如果您的情况是后一种情况,那么您可以使用向量并使用 .contains("value") 方法来查找所需的名称

于 2013-10-18T16:39:19.277 回答
0

您说您想不出任何方法来获取帐户持有人的姓名,但是您已经在空格上分割输入行。如果您只想检测重复的帐户持有人,aSet<String>可以告诉您您已经看到了哪些名称。但是,由于您需要按名称查找帐户,因此您不妨将它们保存在Map<String, BigDecimal>将帐户持有人映射到其余额的 a 中。

不要使用浮点格式,例如double余额float,因为浮点数永远不应该用于货币。我会使用BigDecimal带有 2 刻度的 a,但您也可以使用longorBigInteger并将余额存储为整数美分。如果你确实使用BigDecimal了,请注意BigDecimal(double)构造函数,它的语义非常糟糕。如果你从来没有任何浮点格式的金额,即使是暂时的,你会没事的。

于 2013-10-18T17:33:33.637 回答