java中 如何对齐
对齐文本或输出
在Java中对齐文本通常涉及字符串格式化,可以使用String.format()或System.out.printf()方法,结合格式化符号实现左对齐、右对齐或居中对齐。
左对齐
使用%-Ns格式,其中N为总宽度,负号表示左对齐:
String formatted = String.format("%-10s", "Hello");
System.out.println(formatted); // 输出 "Hello "
右对齐
使用%Ns格式(无负号):
String formatted = String.format("%10s", "Hello");
System.out.println(formatted); // 输出 " Hello"
数字对齐 数字通常右对齐,可指定宽度和精度:
System.out.printf("%8.2f", 123.456); // 输出 " 123.46"(总宽度8,保留2位小数)
居中对齐
Java标准库未直接提供居中对齐方法,需手动计算空格。以下是一个实现示例:
public static String centerString(String s, int width) {
if (s.length() >= width) return s;
int padding = (width - s.length()) / 2;
return " ".repeat(padding) + s + " ".repeat(width - s.length() - padding);
}
System.out.println(centerString("Hello", 10)); // 输出 " Hello "
表格数据对齐
使用System.out.printf()的格式化功能可对齐表格列:
System.out.printf("%-15s %5d %10.2f%n", "Item1", 123, 45.67);
System.out.printf("%-15s %5d %10.2f%n", "LongerItem", 7, 1234.56);
输出:
Item1 123 45.67
LongerItem 7 1234.56
使用第三方库
Apache Commons Lang的StringUtils类提供便捷方法:
String left = StringUtils.leftPad("Hello", 10); // 右对齐
String right = StringUtils.rightPad("Hello", 10); // 左对齐
String center = StringUtils.center("Hello", 10); // 居中对齐
GUI组件对齐
在Swing或JavaFX中,组件对齐通过布局管理器或样式属性控制:

// Swing示例
JLabel label = new JLabel("Text", SwingConstants.CENTER); // 居中对齐
// JavaFX示例
Label label = new Label("Text");
label.setAlignment(Pos.CENTER);






