在控制台中对齐字符串
方法 PrintWriter.format
(通过 System.out.format
调用)可用于在控制台中打印对齐的字符串。该方法接收带有格式信息的 String
和一系列要格式化的对象:
String rowsStrings[] = new String[] {"1",
"1234",
"1234567",
"123456789"};
String column1Format = "%-3s"; // min 3 characters, left aligned
String column2Format = "%-5.8s"; // min 5 and max 8 characters, left aligned
String column3Format = "%6.6s"; // fixed size 6 characters, right aligned
String formatInfo = column1Format + " " + column2Format + " " + column3Format;
for(int i = 0; i < rowsStrings.length; i++) {
System.out.format(formatInfo, rowsStrings[i], rowsStrings[i], rowsStrings[i]);
System.out.println();
}
输出:
1 1 1
1234 1234 1234
1234567 1234567 123456
123456789 12345678 123456
使用固定大小的格式字符串允许使用固定大小的列以类似于表的外观打印字符串:
String rowsStrings[] = new String[] {"1",
"1234",
"1234567",
"123456789"};
String column1Format = "%-3.3s"; // fixed size 3 characters, left aligned
String column2Format = "%-8.8s"; // fixed size 8 characters, left aligned
String column3Format = "%6.6s"; // fixed size 6 characters, right aligned
String formatInfo = column1Format + " " + column2Format + " " + column3Format;
for(int i = 0; i < rowsStrings.length; i++) {
System.out.format(formatInfo, rowsStrings[i], rowsStrings[i], rowsStrings[i]);
System.out.println();
}
输出:
1 1 1
123 1234 1234
123 1234567 123456
123 12345678 123456
格式字符串示例
%s
:只是一个没有格式化的字符串%5s
:格式化至少 5 个字符的字符串 ; 如果字符串较短,则将填充为 5 个字符并右对齐%-5s
:格式化至少 5 个字符的字符串 ; 如果字符串较短,则将其填充为 5 个字符并保持对齐%5.10s
:格式化字符串,最少 5 个字符,最多 10 个字符; 如果字符串短于 5,则将填充为 5 个字符并右对齐; 如果字符串长于 10,则将截断为 10 个字符并右对齐%-5.5s
:格式化固定大小为 5 个字符的字符串 (最小值和最大值等于); 如果字符串短于 5,则将其填充为 5 个字符并保持对齐; 如果字符串长于 5,它将被截断为 5 个字符并保持对齐