在String.format(Java)中使用时,“%1 $#”是什么意思?

时间:2011-04-23 07:11:15

标签: java string format string-formatting

语言是Java。 %1$#在...中意味着什么?

static String padright (String str, int num) {
   return String.format("%1$#" + num + "str", str);
}

在Java API中,String.format()以这种方式使用:

public static String format(String format, Object... args)

所以我认为%1$#是格式说明符。

%[flags][width][.precision][argsize]typechar是模板。

  • 1是旗帜?
  • $是宽度?
  • #是精度?
  • num是argsize?
  • “str”是typechar?

是吗?

1 个答案:

答案 0 :(得分:31)

模板:

%[argument_index$][flags][width][.precision]conversion
  

可选的argument_index是一个   十进制整数表示   论证的位置   参数列表。第一个论点是   由“1 $”引用,第二个由   “2 $”等。

     

可选标志是一组   修改输出的字符   格式。有效标志集取决于   关于转换。

     

可选宽度是十进制整数,表示最小值   要写入的字符数   输出。

     

可选的精度是a   通常是非负十进制整数   用来限制数量   字符。具体行为   取决于转换。

     

所需的转换是a   字符指示如何参数   应格式化。这套有效   给定参数的转换   取决于参数的数据类型。

%1$指的是第一个替换。在这种情况下,字符串str#是一个标志,表示结果应使用与转换相关的替代形式。

http://download.oracle.com/javase/1.5.0/docs/api/java/util/Formatter.html