输出java读取的文本文件中有效行数和无效行数

时间:2014-11-09 14:56:08

标签: java

我正在开发一个程序,该程序读取显示银行交易的文本文件,然后显示文本文件中有多少有效交易以及无效的交易数量。文本文件如下所示:

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

一直试图让这个工作,但无法弄清楚,找不到很多线程覆盖这个...提前感谢!

1 个答案:

答案 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());
    }