Java - 如何获取帐户名称和检查是否相似

时间:2013-10-18 16:28:39

标签: java

我正在为this编写一个编程类,我似乎无法想办法解决这个问题的一部分。我尝试了一些东西,但没有任何工作,所以我想我会问这里,看看人们说什么。我遇到的问题是我想不出一种方法来获取帐户持有人的名字,并将其与所述名称进行比较,以检查是否有任何重复。在那之后,我相信我可以完成这个问题。

我的代码截至目前

    //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]);
                    }
                }
            }
        }
    }

3 个答案:

答案 0 :(得分:0)

帐户持有人的姓名是每行输入的第一个字? 创建哈希映射 浏览文件并将名称添加到hashmap(如果它不存在)。 然后你可以使用它来挖掘输出,找到每个输出的所有消息。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

不要使用doublefloat等浮点格式作为余额,因为永远不应该使用浮点数。我会使用等级为2的BigDecimal,但您也可以使用longBigInteger并将余额存储为整数美分。如果您确实使用BigDecimal,请注意BigDecimal(double)构造函数,它具有令人惊讶的错误语义。如果你从来没有任何浮点格式的金额,即使是暂时的,你也可以。