2016-04-07 18 views
1

我正在嘗試從文本文件中計算總金額,到目前爲止我已打印出價格,但我不確定要使用哪些代碼來計算總金額。Jlist計算

OrderPage.setText("Diner Number | Food | Quantity | Calories | Price"); 
     DefaultListModel listModel = new DefaultListModel(); 
        try { 
         FileReader file = new FileReader("savedFoodData.txt"); 
         BufferedReader buffer = new BufferedReader(file); 

         while ((line = buffer.readLine()) != null) { 
           outputDinerChoice = line; 
           outputDinerChoice = outputDinerChoice.replaceAll(",", "  ");      
           listModel.addElement(outputDinerChoice);  
           dinersChoice = outputDinerChoice.split("  "); 
           System.out.println(dinersChoice[4]); 
          } 

文件( 「savedFoodData.txt」)將載列如下:

"Diner Number | Food | Quantity | Calories | Price" 

,其中將包括:

1/2,Burger,1,156kcal,£2.70 
1/2,Chicken,1,159kcal,£3.90 
1/2,Steak,1,50kcal,£7.00 
2/2,Noodles,1,398kcal,£4.90 
2/2,Pizza,1,156kcal,£2.70 
1/2,Beer,1,20kcal,£4.10 
1/2,Coke Tea,1,5kcal,£1.50 

而這個代碼將打印

System.out.println(dinersChoice[4]); 
£2.70 
£3.90 
£7.00 
£4.90 
£2.70 
£4.10 
£1.50 

我試圖計算t他從這個總價中,我該怎麼做?

+0

提示:使用子字符串和'Double.parseDouble()' – Mordechai

回答

0
  • 分割行成列的陣列
  • 使用子串轉換 「£2.70」=> 「2.70」
  • 轉換了 「2.70」 使用Double.parseDouble()
的數

實施例

String line = "1/2,Burger,1,156kcal,£2.70"; 
String[] columns = line.split(","); 
double value = Double.parseDouble(columns[4].substring(1)); 

集成

double sum = 0; 
while ((line = buffer.readLine()) != null) { 
    String[] columns = lines.split(","); 
    sum = sum + Double.parseDouble(columns[4].substring(1)); 
} 
+0

我需要爲每個保存的文件寫入字符串行嗎? –

+0

這只是一個自包含的例子,看到我的更新的答案... – Adam

+0

感謝您的幫助,我現在明白我做錯了什麼,未來做什麼,但出於這個原因總的來說,這就像26.799999999999997,無論如何要解決這個問題? –