开发者

What does "%1$#" mean when used in String.format (Java)?

开发者 https://www.devze.com 2023-02-28 10:53 出处:网络
Language is Java. What does the %1$# mean in... static String padright (String str, int num) { return String.format(\"%1$#\" + num + \"str\", str);

Language is Java. What does the %1$# mean in...

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

In the Java API, String.format() is used in this way:

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

So I think %1$# is a format specifier.

%[flags][width][.precision][argsize]typechar is the template.

  • 1 is a flag?
  • $ is the width?
  • # is the precision?
  • num is the argsize?
  • "str" is the typechar?

Is that right?开发者_StackOverflow社区


Template:

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

The optional argument_index is a decimal integer indicating the position of the argument in the argument list. The first argument is referenced by "1$", the second by "2$", etc.

The optional flags is a set of characters that modify the output format. The set of valid flags depends on the conversion.

The optional width is a decimal integer indicating the minimum number of characters to be written to the output.

The optional precision is a non-negative decimal integer usually used to restrict the number of characters. The specific behavior depends on the conversion.

The required conversion is a character indicating how the argument should be formatted. The set of valid conversions for a given argument depends on the argument's data type.

%1$ refers to the first substitution. In this case the string str. # is flag which says the result should use a conversion-dependent alternate form.

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

0

精彩评论

暂无评论...
验证码 换一张
取 消