来自toString的控制台输出isn';t在Java中为“a”正确格式化;购物车“;类型应用程序。我错过了一些简单的东西吗?

来自toString的控制台输出isn';t在Java中为“a”正确格式化;购物车“;类型应用程序。我错过了一些简单的东西吗?,java,tostring,Java,Tostring,堆栈溢出的居民们,我呼吁你们的帮助和伟大的智慧 问题:driver print正在打印几乎所有我需要的信息,但第一行也在一条长线中打印全部信息。我注意到,复制/粘贴我的控制台putput时,格式并没有保留下来,因此我将尝试描述它。它很整洁地打印出一张带格式的表格,上面有我需要的信息。只是最上面一行也复制了信息。它似乎是完全相同的印刷品,只是没有新的线条 我有这个购物车应用程序。所有这些都完成了,现在我正在控制台中为看起来像收据的打印输出处理toString格式。由于它包含7个左右不同的类,所以我

堆栈溢出的居民们,我呼吁你们的帮助和伟大的智慧

问题:driver print正在打印几乎所有我需要的信息,但第一行也在一条长线中打印全部信息。我注意到,复制/粘贴我的控制台putput时,格式并没有保留下来,因此我将尝试描述它。它很整洁地打印出一张带格式的表格,上面有我需要的信息。只是最上面一行也复制了信息。它似乎是完全相同的印刷品,只是没有新的线条

我有这个购物车应用程序。所有这些都完成了,现在我正在控制台中为看起来像收据的打印输出处理toString格式。由于它包含7个左右不同的类,所以我不会发布所有代码,而只发布cart、driver和父类,因为我认为这是问题的根源所在。如果需要更多,请让我知道,我可以张贴我有什么

复制/粘贴控制台输出


[牛肉2 1 2,名牌5 2 10,湿食2 15 30,猫食3 2 6,干食20 1 20,金鱼5真1真1金,小150.5真1貂皮1 4,小200.28真2蓬松0 3]牛肉2 1 2 姓名标签5210 湿食2 15 30 猫爪3 2 6 干粮20 1 20 金鱼5真1金鱼真 小型150.5真1毫米14毫米
小200.28真2蓬松0 3

    public class ShoppingDriver{
                                    
    
        public ShoppingDriver(int max) {
            // TODO Auto-generated constructor stub
        }
    
        public static void main(String[] args) {
            PetStoreItem Beef = new PetFood("Beef", 2.00, 1);
            PetStoreItem Fluffy = new Mammal("Small", 200.275, true, 2, "Fluffy", 0, 3);
            PetStoreItem Minx = new Mammal("Small", 150.50, true, 1, "Minx", 1, 4);
            PetStoreItem Goldie = new Fish("Goldfish", 5.00, true, 1, "Goldie", true);
            PetStoreItem Catnip = new PetFood("Catnip", 3.00, 2);
            PetStoreItem Dryfood = new PetFood("Dryfood", 20.00, 1);
            PetStoreItem Wetfood = new PetFood("Wetfood", 2.00, 15);
            PetStoreItem Nametag = new PetFood("Nametag", 5.00, 2);
            
            Cart one = new Cart(8);
            one.add(Beef);
            one.add(Nametag);
            one.add(Wetfood);
            one.add(Catnip);
            one.add(Dryfood);
            one.add(Goldie);
            one.add(Minx);
            one.add(Fluffy);
            System.out.println(one);
    
        }
    
    }


public class Cart {
    private PetStoreItem[] itemsList;
    private int numItems;

    public Cart(int max) {
        itemsList = new PetStoreItem[max];
        numItems = 0;
    }

    public void add(PetStoreItem itemToAdd) {
        itemsList[numItems++] = itemToAdd;

    }

    public int size() {
        int size = itemsList.length;
        return size;
    }

    @Override
    public String toString() {
        String output = "";
        output += Arrays.toString(itemsList);
        for (int i = 0; i < numItems; i++) {
            output += itemsList[i] + "\n";
        }
        return output;
    }

}


    import java.text.DecimalFormat;
    
    public abstract class PetStoreItem {
        private String description;
        private double price;
        public static final DecimalFormat DF2 = new DecimalFormat("#.##");
        
        public PetStoreItem(String description, double price) {
            this.description = description;
            this.price = price;
        }
        
        public String getDescription() {
            return description;
        }
        public double getPrice() {
            return price;
        }
        
        public void setDescription(String desc) {
            description = desc;
        }
        
        public void setPrice(Double cost) {
            price = cost;
        }
        double itemTotalCost() {
            return price;
        }
        public String toString() {
            String output = "";
            output += description + "\t" + DF2.format(price) + "\t";
            return output;
        }
    }
公共类ShoppingDriver{
公共购物驱动程序(int max){
//TODO自动生成的构造函数存根
}
公共静态void main(字符串[]args){
PetStoreItem牛肉=新宠物食品(“牛肉”,2.00,1);
PetStoreItem Fluffy=新哺乳动物(“小”,200.275,真,2,“Fluffy”,0,3);
PetStoreItem Minx=新哺乳动物(“小”,150.50,真,1,“Minx”,1,4);
PetStoreItem Goldie=新鱼(“Goldfish”,5.00,正确,1,“Goldie”,正确);
PetStoreItem Catnip=新宠物食品(“Catnip”,3.00,2);
PetStoreItem Dryfood=新的PetFood(“Dryfood”,20.00,1);
PetStoreItem Wetfood=新宠物食品(“Wetfood”,2.00,15);
PetStoreItem名称标签=新宠物食品(“名称标签”,5.00,2);
购物车1=新购物车(8);
一.加入(牛肉);
1.添加(姓名标签);
一、添加(湿食);
1.添加(Catnip);
1.添加(干食品);
一.加上(戈尔迪);
1.添加(Minx);
一、添加(蓬松);
系统输出打印项次(一);
}
}
公共类购物车{
私有PetStoreItem[]项目列表;
私有内部网络;
公共购物车(整数最大值){
itemsList=新的PetStoreItem[max];
numItems=0;
}
公共作废添加(PetStoreItem itemToAdd){
itemsList[numItems++]=itemToAdd;
}
公共整数大小(){
int size=itemsList.length;
返回大小;
}
@凌驾
公共字符串toString(){
字符串输出=”;
输出+=数组.toString(itemsList);
对于(int i=0;i
我有4个额外的儿童课程(哺乳动物、鱼、宠物食品、宠物)。如果这些证明有用,我会提供它们。值得注意的是,我确实从cart类中删除了super.toString,因为它在控制台中创建了一个类似于“”的错误CFS@13756af". 如果我没记错的话,这是因为我试图打印一个没有toString的对象。不管怎样,我从购物车上取下了super,然后就修好了。 我现在正处于用标签格式化我的toString并使其看起来漂亮的最后一步,我一直没能弄明白这一点。任何帮助都将不胜感激。 谢谢

在Cart#toString()中检查此行,如果删除它有帮助:


输出+=数组.toString(itemsList)

Arrays.toString(itemsList)和循环本质上是做同样的事情。做其中一个。不是两者都有。我觉得
cart
toString()
方法是错误的。为什么您首先要这样做
output+=Arrays.toString(itemsList)然后再次手动附加所有项目?您希望输出看起来如何,嘿,伙计们,非常感谢。这就解决了问题。我删除了output+=Arrays.toString(itemsList);这就把最上面的一行都清理干净了。非常感谢!