Java中的格式化输出

时间:2014-02-14 23:29:07

标签: java

我正在尝试使用格式化输出,并想知道如何在此代码中使用%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”说明符可以用于任何类型的值?

2 个答案:

答案 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个空格。