我正在开发一个程序,该程序读取显示银行交易的文本文件,然后显示文本文件中有多少有效交易以及无效的交易数量。文本文件如下所示:
W>10>12/11/2014
D>200>14/9/2014
W>1299>12/4/2013
D:345>12/3/2014
W10>14/9/2012
前三个交易都是有效的,底部2是无效的。这是我到目前为止的代码:
public void Tranctions(){
String separator = ">";
File inputfile = new File ("bank.txt");
String[] Token;
String aLine = "";
System.out.println("Type"+"\tAmount"+"\t Date\n=========================================");
try {
Scanner filescan = new Scanner(inputfile);
while (filescan.hasNext()){
aLine = filescan.nextLine();
Token = aLine.split(separator);
if (Token.length == 3){
System.out.println(Token[0]+"\t €" +Token [1]+"\t"+Token[2]);
} else {
throw new IllegalArgumentException("String "+ aLine + "does not contain "+separator);
}
}
filescan.close();
System.out.println("End of transaction \n================================\n\n");
}
catch (FileNotFoundException e)
{
System.out.println("problem "+e.getMessage());
}
}
}
我希望输出看起来像这样:
W €10 12/11/2014
D €200 14/9/2014
D €1299 12/3/2014
Valid transactions : 3
Invalid transactions : 2
一直试图让这个工作,但无法弄清楚,找不到很多线程覆盖这个...提前感谢!
答案 0 :(得分:0)
如果你没有其他问题,我的意思是编译或崩溃,那么这将是你需要的
我将使用try {}块并添加/删除代码。
int totalValid=0,totalInvalid=0;
try {
Scanner filescan = new Scanner(inputfile);
while (filescan.hasNext()){
aLine = filescan.nextLine();
Token = aLine.split(separator);
if (Token.length == 3){
System.out.println(Token[0]+"\t €" +Token [1]+"\t"+Token[2]);
++totalValid;
} else {
//REMOVED THE throw new IllegalArgumentException(
++totalInvalid;
}
}
System.out.println("Valid transactions : " + totalValid);
System.out.println("Invalid transactions : " + totalInvalid);
filescan.close();
System.out.println("End of transaction \n================================\n\n");
} catch (FileNotFoundException e)
{
System.out.println("problem "+e.getMessage());
}