2014-02-21 17 views
0

我有一个要求,即将多个客户发票视为不同的文件。我可以从每张发票中读取客户名称和发票金额。要求是,对于一个客户,我应该加起来所有的发票金额。在不同文件中为同一客户命名的数字

这里是我的代码:

String[] filenames1 = laf.splitFileNames(); 
FileInputStream fs; 
BufferedReader br; 
String line; 
for (String filename1 : filenames1) { 
    fs = new FileInputStream(outFolder + filename1); 
    br = new BufferedReader(new InputStreamReader(fs)); 
    for (int m = 0; m < 1; m++) { 
     br.readLine(); 
    } 
    line = br.readLine().trim(); 
    String cust_name = line.substring(12);//Returns the Customer Name 
    String amount = rll.lastNonBlankLine(new File(outFolder + filename1));//Returns Invoice Amount in String format 
    System.out.println(cust_name + "-" + rll.lastNonBlankLine(new File(outFolder + filename1))); 
} 

我出地说:

TAITA TAVETA TEACHERS SACCO-25,101.53 
TAITA TAVETA TEACHERS SACCO-12,927.62 
TAITA TAVETA TEACHERS SACCO-12,927.62 
NOT FOR CUSTOMER-12,927.62 

理想我应该能够得到:

TAITA TAVETA TEACHERS SACCO-50,956.77 
NOT FOR CUSTOMER-12,927.62 

请助攻,在这一点上我在哪里卡住。

回答

1

您将不得不以某种方式将字符串解析为某种数字类型,可能是BigDecimal。然后,您可以将客户名称的地图保留为当前金额,并在您读取值时持续更新。 只有在完成文件读取后,才会输出累计和。

所以,你接下来的步骤应该是:

  • 查找参考文档的BigDecimal,寻找一种方式来解析。
  • 查看Map的参考文档,了解它们如何工作以及如何帮助您。
0

我真的不认为,如果这真的帮助卜我应该说,你的问题也许当以String格式返回发票金额,你这样做:

String amount = rll.lastNonBlankLine(new File(outFolder + filename1)); 

但是当你打印出来,你将获得另一张发票金额:

System.out.println(cust_name + "-" + rll.lastNonBlankLine(new File(outFolder + filename1))); 

我认为你必须做这样的事情:

System.out.println(cust_name + "-" + amount); 
+0

这是一样的萨拉在任何情况下出印刷只是为了调试。我需要数字进一步处理。 – ErrorNotFoundException

相关问题