我正在尝试使用格式化输出,并想知道如何在此代码中使用%10s
package formattedoutput;
public class FormattedOutput {
public static void main(String[] args) {
double amount;
amount = 43.676;
int spaces;
spaces = 77;
String adding;
adding = "check me out";
System.out.printf( "%1.2f%n", amount );
System.out.println();
System.out.printf("%12d", spaces );
System.out.println();
System.out.printf("%10s", adding );
}
}
从我的所作所为,我认为没有任何区别 “格式说明符末尾的字母”s“可以与任何类型的值一起使用。这意味着该值应以其默认格式输出,就像在未格式化的输出中一样。一个数字,例如可以添加%10s中的“10”来指定(最小)字符数。“我是否正确使用它?如果是这样,为什么它说“s”说明符可以用于任何类型的值?
答案 0 :(得分:1)
%s
确定该值应打印为String
,您可以将其用于数字或任何Object
,字符串值为{通过调用Object
方法确定{1}}。每个对象都有一个。
toString
之前的数字,例如s
确定将输出的最小字符数。如果输入字符串短于给定的字符数,则它将以空格为前缀。这用于例如将文本右对齐,例如:
%10s
输出
System.out.printf("%s\n", "id");
System.out.printf("%s\n", "name");
System.out.printf("%s\n", "rank");
,而
id
name
rank
给出
System.out.printf("%5s\n", "id");
System.out.printf("%5s\n", "name");
System.out.printf("%5s\n", "rank");
答案 1 :(得分:0)
%10s告诉格式化程序在字符串前面放置空格(如果小于10个字符)。这就是为什么你看不出有什么区别。如果你输入%15s,你要求格式化程序用足够的空格用你的字符串填充15个字符,在你的例子中它将在它前面放置3个空格。