语言是Java。%1$#在…中是什么意思
%1$#
static String padright (String str, int num) { return String.format("%1$#" + num + "str", str); }
在Java API中,String.format()以这种方式使用:
String.format()
public static String format(String format, Object... args)
所以我认为%1$#是格式说明符。
%[flags][width][.precision][argsize]typechar 是模板。
%[flags][width][.precision][argsize]typechar
那正确吗?
模板:
%[argument_index$][flags][width][.precision]conversion
可选的arguments_index是一个十进制整数,指示参数在参数列表中的位置。第一个参数由“ 1 $”引用,第二个参数由“ 2 $”等等。 可选标志是一组修改输出格式的字符。有效标志集取决于转换。 可选宽度是一个十进制整数,指示要写入输出的最小字符数。 可选精度是一个非负十进制整数,通常用于限制字符数。具体行为取决于转换。 所需的转换是一个字符,指示应如何格式化参数。给定参数的有效转换集取决于参数的数据类型。
可选的arguments_index是一个十进制整数,指示参数在参数列表中的位置。第一个参数由“ 1 $”引用,第二个参数由“ 2 $”等等。
可选标志是一组修改输出格式的字符。有效标志集取决于转换。
可选宽度是一个十进制整数,指示要写入输出的最小字符数。
可选精度是一个非负十进制整数,通常用于限制字符数。具体行为取决于转换。
所需的转换是一个字符,指示应如何格式化参数。给定参数的有效转换集取决于参数的数据类型。
%1$指第一个替换。在这种情况下,字符串str。 #是标志,表示结果应使用与转换有关的替代形式。
%1$
str
#
http://download.oracle.com/javase/1.5.0/docs/api/java/util/Formatter.html