You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何调用toString()方法打印后程序未添加空白行?

解决ArrayList输出换行分隔失效的问题

问题根源

你使用System.out.println(c.toString() + "\n\n")时,println方法会自动在输出内容末尾追加一个换行符,导致手动添加的\n\n和方法自带的换行叠加后,没有达到预期的空行分隔效果;再结合你提供的输出结果来看,当前写法的换行逻辑完全没有生效,核心问题出在println的自动换行特性与手动换行的冲突上。

修复方案

方案1:替换println为print

去掉println自带的自动换行,仅依赖手动添加的\n\n实现分隔:

for(Bicycle c : Bikes){
    if(c instanceof MountainBike){
        ((MountainBike) c).setHeight(99);
        System.out.println("New Mountain Bike Info: ");
        System.out.print(c.toString() + "\n\n");
    }
    
    if(c instanceof TandemBike){
        ((TandemBike) c).setBetweenSpace(88);
        System.out.println("New Tandem Bike Info: ");
        System.out.print(c.toString() + "\n\n");    
    }
   
    if(c instanceof RoadBike){
        ((RoadBike) c).setHandlebarType("NewType");
        System.out.println("New Road Bike Info: ");
        System.out.print(c.toString() + "\n\n");   
    }
}

方案2:单独输出空行

用无参的println()输出空行,逻辑更直观清晰:

for(Bicycle c : Bikes){
    if(c instanceof MountainBike){
        ((MountainBike) c).setHeight(99);
        System.out.println("New Mountain Bike Info: ");
        System.out.println(c.toString());
        // 输出两个空行实现分隔
        System.out.println();
        System.out.println();
    }
    
    if(c instanceof TandemBike){
        ((TandemBike) c).setBetweenSpace(88);
        System.out.println("New Tandem Bike Info: ");
        System.out.println(c.toString());
        System.out.println();
        System.out.println();    
    }
   
    if(c instanceof RoadBike){
        ((RoadBike) c).setHandlebarType("NewType");
        System.out.println("New Road Bike Info: ");
        System.out.println(c.toString());
        System.out.println();
        System.out.println();   
    }
}

额外优化

由于一个Bicycle实例只会是MountainBike/TandemBike/RoadBike中的一种,把三个独立if改成else if可以减少不必要的判断,提升代码效率:

for(Bicycle c : Bikes){
    if(c instanceof MountainBike){
        ((MountainBike) c).setHeight(99);
        System.out.println("New Mountain Bike Info: ");
        System.out.println(c.toString());
        System.out.println();
        System.out.println();
    } else if(c instanceof TandemBike){
        ((TandemBike) c).setBetweenSpace(88);
        System.out.println("New Tandem Bike Info: ");
        System.out.println(c.toString());
        System.out.println();
        System.out.println();
    } else if(c instanceof RoadBike){
        ((RoadBike) c).setHandlebarType("NewType");
        System.out.println("New Road Bike Info: ");
        System.out.println(c.toString());
        System.out.println();
        System.out.println();
    }
}

内容的提问来源于stack exchange,提问作者Aaron Hall

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 21:00:53