在 String.format() 中选择参数

2022-01-12 00:00:00 formatting java

C# 中,您可以使用 para 2: {2} 指定用于格式化字符串的参数.这允许在任意位置多次使用参数.

In C# you can specify which parameter is used for a formatted string with para 2: {2}. This allows for using parameters in arbitrary places and multiple times.

有没有办法用标准 java 做到这一点?

Is there a way to do this with standard java?

推荐答案

是的.您可以定义参数的索引,请参阅 Argument Index 部分.html" rel="noreferrer">API.

Yes. You can define the argument's index, see the Argument Index section of the API.

例如:

//                 ┌ argument 3 (1-indexed)
//                 | ┌ type of String
//                 | |  ┌ argument 2
//                 | |  | ┌ type of decimal integer
//                 | |  | |  ┌ argument 1
//                 | |  | |  | ┌ type of decimal number (float)
//                 | |  | |  | |
System.out.printf("%3$s %2$d %1$f", 1.5f, 42, "foo");

输出

foo 42 1.500000

注意

以下成语都有相同的格式定义:

The following idioms all share the same format definitions:

  • String#format
  • PrintStream#printf
  • Formatter#format

相关文章