输出不同的类和构造函数

问题描述 投票:0回答:1

每当我尝试运行输出时,欢迎消息之后的所有内容都会出现多个异常,从而阻止任何输出通过它。帮忙吗?

以下是显示的例外情况:

Exception in thread "main" java.util.InputMismatchException
at java.base/java.util.Scanner.throwFor(Scanner.java:939)
at java.base/java.util.Scanner.next(Scanner.java:1594)
at java.base/java.util.Scanner.nextInt(Scanner.java:2258)
at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
at TheCupcakeFactory.main(TheCupcakeFactory.java:35)

这是我的主要方法和名为 TheCupcakeFactory 的类


import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;

        public class TheCupcakeFactory 
        {
            private static Scanner inputFile;
            /*
             *Diego Molina Salinas
             *CS160 Fall 2023
             *Project 4: The Cupcake Factory Sales
             *
             */
            public static void main(String[] args) throws IOException
            {
                Cupcake cupcakeCS = new Cupcake();
                Cupcake cupcakeAP = new Cupcake();
                Cupcake cupcakeBF = new Cupcake();
                Cupcake cupcakeBS = new Cupcake();
                Cupcake cupcakeBW = new Cupcake();
                
                Cupcake [] cupcakes = {cupcakeCS, cupcakeAP, cupcakeBF, cupcakeBS, cupcakeBW};
                System.out.println("Welcome to the Cupcake Factory Sales Registry!!");
//          
                
                    FileReader file = new FileReader("FreshCupcakes.txt");
                    inputFile = new Scanner(file);

                    
                    //This is setting the Chocolate Strawberry Cupcake
                    cupcakeCS.setFlavor(inputFile.next());
                    cupcakeCS.setDescription("Moist chocolate cake filled with strawberry jam, topped with strawberry buttercream dipped in chocolate.");
                    cupcakeCS.setUnitsOnHand(inputFile.nextInt());
                    cupcakeCS.setPrice(2.75);
                    //This is setting the Apple Pie Cupcake
                    cupcakeAP.setFlavor(inputFile.next());
                    cupcakeAP.setDescription("Moist vanilla cake filled with apple pie filling; topped with cream cheese icing, apple pie filling, and cinnamon streusel");
                    cupcakeAP.setUnitsOnHand(inputFile.nextInt());
                    cupcakeAP.setPrice(3.25);
                    //This is setting the Butterfinger Cupcake
                    cupcakeBF.setFlavor(inputFile.next());
                    cupcakeBF.setDescription("Moist chocolate cake filled and topped with our peanut butter icing and Butterfinger candy.");
                    cupcakeBF.setUnitsOnHand(inputFile.nextInt());
                    cupcakeBF.setPrice(2.95);
                    //This is setting the Banana Split Cupcake
                    cupcakeBS.setFlavor(inputFile.next());
                    cupcakeBS.setDescription("Moist chocolate cake filled with banana filling, topped with our vanilla buttercream with sprinkles, cherry and chocolate drizzle on top.");
                    cupcakeBS.setUnitsOnHand(inputFile.nextInt());
                    cupcakeBS.setPrice(3.15);
                    //This is setting the Black & White Cupcake
                    cupcakeBW.setFlavor(inputFile.next());
                    cupcakeBW.setDescription("  Moist vanilla cupcake, topped with our rich fudge icing");
                    cupcakeBW.setUnitsOnHand(inputFile.nextInt());
                    cupcakeBW.setPrice(3.50);
                    for (Cupcake cupcake : cupcakes) {
                        System.out.println(cupcake);
                    }

            }

这是我的 Cupcake 类,它包含所有构造函数:


public class Cupcake 
{
String flavor;
String description;
int unitsOnHand;
double price;

public Cupcake() {
    // TODO Auto-generated constructor stub
    this.flavor = "";
    this.description = "";
    this.unitsOnHand = 0;
    this.price = 0.0;
    
}
public String getFlavor() {
    return flavor;
}
public void setFlavor(String flavor) {
    this.flavor = flavor;
}
public String getDescription() {
    return description;
}
public void setDescription(String description) {
    this.description = description;
}
public int getUnitsOnHand() {
    return unitsOnHand;
}
public void setUnitsOnHand(int unitsOnHand) {
    this.unitsOnHand = unitsOnHand;
}
public double getPrice() {
    return price;
}
public void setPrice(double price) {
    this.price = price;
}
public void newUnitsOnHand(int quantity) {
    unitsOnHand = unitsOnHand - quantity;
}
@Override
public String toString() {
     return flavor + ": \t\t $" + price + " - " + description;
}

}

最后,这是我设置纸杯蛋糕信息的文件。 (数字表示可用纸杯蛋糕的数量):

Chocolate Strawberry 25
Apple Pie 15
Butterfinger 25
Banana Split 30
Black & White 50
java arrays file class constructor
1个回答
0
投票

这里有一个问题。默认分隔符是空格。您的第二个输入

Chocolate Strawberry 25

Strawberry
,但它试图被解析为
int
。您需要具有一致的输入格式,以便您可以正确解析数字。

cupcakeCS.setFlavor(inputFile.next());
cupcakeCS.setDescription("Moist chocolate cake filled with strawberry jam, topped with strawberry buttercream dipped in chocolate.");
cupcakeCS.setUnitsOnHand(inputFile.nextInt());
cupcakeCS.setPrice(2.75);
© www.soinside.com 2019 - 2024. All rights reserved.