2014-02-21 19 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

相關問題