java如何对齐输出
对齐输出的方法
在Java中,对齐输出通常可以通过System.out.printf或String.format方法实现,利用格式化字符串控制输出的对齐方式。以下是几种常见的对齐方法:
使用printf进行左对齐和右对齐
printf方法通过格式化字符串中的%-Ns(左对齐)和%Ns(右对齐)实现对齐,其中N为字段宽度。
System.out.printf("%-10s %10s\n", "Left", "Right"); // 左对齐10字符,右对齐10字符
System.out.printf("%-10d %10d\n", 123, 456); // 数字对齐
使用String.format生成对齐字符串
String.format与printf的格式化规则相同,但返回格式化后的字符串而非直接输出。

String aligned = String.format("%-15s %15s", "Name", "Value");
System.out.println(aligned);
制表符(\t)的简单对齐
制表符可用于快速对齐,但可能因终端设置导致对齐不一致。
System.out.println("Item\t\tPrice");
System.out.println("Apple\t\t10");
System.out.println("Banana\t\t5");
使用String方法手动填充
通过String.format或StringBuilder手动填充空格实现对齐。

String name = "Java";
int value = 100;
String line = String.format("%-" + 10 + "s | %" + 5 + "d", name, value);
System.out.println(line);
对齐输出的注意事项
- 字段宽度:需提前确定字段的最大宽度,避免内容溢出。
- 数字对齐:使用
%d、%f等格式时,可指定小数位数(如%.2f)和宽度(如%8.2f)。 - 多语言支持:中英文字符宽度不同,可能需要特殊处理(如使用
String.getBytes().length计算实际宽度)。
示例代码
以下是一个完整的对齐输出示例:
public class AlignOutput {
public static void main(String[] args) {
// 表头
System.out.printf("%-15s %10s %10s\n", "Item", "Price", "Stock");
System.out.println("----------------------------------");
// 数据行
System.out.printf("%-15s %10.2f %10d\n", "Apple", 3.99, 50);
System.out.printf("%-15s %10.2f %10d\n", "Banana", 1.50, 120);
}
}
输出结果:
Item Price Stock
----------------------------------
Apple 3.99 50
Banana 1.50 120






