当我调用方法时
public static void print(){
System.out.printf("%10s", "Test 1 Test 2 Test 3 Average\n");
}
它没有正确格式化(它根本没有缩进)可以有人向我解释原因。
我希望输出为
Test 1 Test 2 Test 3 Average
^^ 10缩进空格
答案 0 :(得分:4)
您的printf
参数长度为29个字符,但您只允许10个字符的偏移量,因此不会产生缩进。因此,您需要格式说明符宽度为10 + 29(完整字符串)
System.out.printf("%39s", "Test 1 Test 2 Test 3 Average\n");
更简单仍然使用单个Formatter
String
(并使用与平台无关的换行符说明符 - %n
)
System.out.printf("%10sTest 1 Test 2 Test 3 Average%n", " ");
阅读Formatter javadoc了解更多
答案 1 :(得分:0)
我认为“缩进”是指填充,因为printf不适用于缩进。您提供的代码不会添加任何空格,因为该字符串超过10个字符。此外,%10s用于在字符串后添加空格以匹配10个字符的大小(在给定示例中)。
如果你想在之前用空格填充字符串,你会写:
System.out.printf(“%10s”,...)
在这种情况下,它会用空格填充字符串以匹配10个字符。