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

2022-09-01 22:58:15

语言就是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”是打字符吗?

是吗?


答案 1

模板:

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

可选argument_index是一个十进制整数,指示参数在参数列表中的位置。第一个参数由“1$”引用,第二个参数由“2$”引用,依此类推。

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

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

可选精度是一个非负十进制整数,通常用于限制字符数。具体行为取决于转化。

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

%1$指第一个替换。在本例中为字符串 。 是标志,表示结果应使用与转换相关的替代形式。str#

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


答案 2