0

これを含む .txt ファイルを読み込もうとしています

lollipops 10 0.50 5.00 
dietsoda 3 1.25 3.75
chocolatebar 20 0.75 15.00

名前、数量、価格、合計の 4 つの列を 1 つにし、それらを txt ファイルから読み取ります。次に、小計、消費税、合計を計算します。合計は常に最後の値であり、この場合はチョコレートバーの合計であるため、小計の計算方法がわかりません。

    import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;

public class CatalogTester
{
    public static double SALESTAX = 0.0625;

    public static void main(String[] args) throws FileNotFoundException
    {


        String name ="";
        int quantity = 0;
        double price =0;
        double total = 0;
        double subtotal = 0;
        double tax = 0;
        double total_all = 0;

        File inFile = new File("Catalog.txt");
        Scanner in = new Scanner(inFile);
        System.out.printf("%-30s %-10s %-10s %-10s\n", "Item", "Quantity","Price", "Total");
        System.out.println();
        System.out.println("Expected:Item                           Quantity   Price      Total");
        while(in.hasNext()){
            name = in.next();
            quantity = in.nextInt();
            price = in.nextDouble();
            total = in.nextDouble();
            System.out.printf("%-30s %-10d %-10.2f %-10.2f\n", name, quantity, price, total);
        }
        in.close();
        tax = subtotal * SALESTAX;
        total_all = subtotal+tax;


        System.out.println("Expected:lollipops                      10         0.50       5.00");
        System.out.printf("%-52s %-10.2f\n", "SubTotal", subtotal);
        System.out.println("Expected:SubTotal                                             23.75");
        System.out.printf("%-52s %-10.2f\n", SALESTAX * 100 + "% Sales Tax",tax);
        System.out.println("Expected:6.25% Sales Tax                                      1.48");
        System.out.printf("%-52s %-10.2f\n", "Total", total_all);
        System.out.println("Expected:Total                                                25.23");    
    }
}
4

3 に答える 3

0

while 条件で行の割り当てを移動します。

      String line = in.nextLine();
         while(in.hasNextLine()){

への変更

      while(in.hasNextLine()){
         String line = in.nextLine();
于 2013-09-16T05:11:28.817 に答える