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

Java中如何实现Scanner接收的终端用户输入内容垂直对齐

问题原因

你当前代码中printf的%s占位符没有指定固定输出宽度,不同商品名(item_1/item_2/item_3)的字符长度不同,就会导致冒号的水平位置参差不齐,后续用户输入的数字自然无法垂直对齐。

解决方法

给字符串占位符增加固定左对齐宽度即可,你可以根据自己商品名的最大长度调整宽度数值,示例中将宽度设置为10(如果你的商品名更长,把10改成更大的数值即可):

System.out.println("Please place your order");
System.out.println("-----------------------");

// %-10s 表示字符串左对齐,固定占10个字符宽度,不足的补空格
System.out.printf("No. of %-10s: " , item_1);
order_QTY_1 = input.nextInt();
System.out.printf("No. of %-10s: " , item_2);
order_QTY_2 = input.nextInt();
System.out.printf("No. of %-10s: " , item_3);
order_QTY_3 = input.nextInt();

如果商品名长度不固定,你可以提前遍历所有商品名计算出最大长度,再动态生成宽度参数,适配所有长度的商品名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 01:27:01