我正在为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]);
}
}
}
}
}
答案 0 :(得分:0)
帐户持有人的姓名是每行输入的第一个字? 创建哈希映射 浏览文件并将名称添加到hashmap(如果它不存在)。 然后你可以使用它来挖掘输出,找到每个输出的所有消息。
答案 1 :(得分:0)
您能否更具体地了解问题所在。是您需要从文件中读取文件并获取帐户持有者的名称,然后将它们与用户输入进行比较,或者您已经在集合中获得了帐户持有者名称,并且无法确定下一步该做什么。 如果您的案例是后者,那么您可以使用向量并使用.contains(“value”)方法来查找所需的名称
答案 2 :(得分:0)
您说您无法想办法获取帐户持有人的姓名,但您已经在空格上分割输入行。如果您只想检测重复的帐户持有人,Set<String>
可以告诉您已经看过哪些名称。但是,由于您需要按名称查找帐户,因此您可以将它们保存在Map<String, BigDecimal>
中,以便将帐户持有人映射到其余额。
不要使用double
或float
等浮点格式作为余额,因为永远不应该使用浮点数。我会使用等级为2的BigDecimal
,但您也可以使用long
或BigInteger
并将余额存储为整数美分。如果您确实使用BigDecimal
,请注意BigDecimal(double)
构造函数,它具有令人惊讶的错误语义。如果你从来没有任何浮点格式的金额,即使是暂时的,你也可以。