Java 在String.format中嵌套格式

Java 在String.format中嵌套格式,java,string-formatting,Java,String Formatting,java的String.format是否可以嵌套格式?例如: String fooPadded = String.format("FOO:%1$10s", "foo"); // fooPadded:"FOO: foo" String barPadded = String.format("%1$15s", fooPadded); // barPadded:" FOO: foo" 我不想调用两个连续的format方法,因为这在性能上会很昂贵,我想用条形规则包装foo规

java的
String.format
是否可以嵌套格式?例如:

String fooPadded = String.format("FOO:%1$10s", "foo");

// fooPadded:"FOO:       foo"

String barPadded = String.format("%1$15s", fooPadded);

// barPadded:" FOO:       foo"

我不想调用两个连续的
format
方法,因为这在性能上会很昂贵,我想用条形规则包装foo规则,在其他方面,将格式简化为单个格式。

您的程序中是否存在性能问题?如果是这样,你想做点什么是对的。如果不是,你不应该。如果有,
String.format()
不会是我的第一个怀疑,也不会是第二个怀疑,因为它花费了太长时间。在对漂亮且可读的代码进行任何更改之前,请先进行测量

也就是说,我认为限制一次调用
format()
的方法是:

    String barPadded = String.format("%5s%10s", "FOO:", "foo");
我不认为你可以做筑巢,除非像你的问题中那样有两个调用


如果
“foo”
恰好是11个字符长,那么我的代码不会给出与您问题中的代码完全相同的结果。

为什么您认为使用单个格式字符串可以提高性能?不,从性能角度看,格式化并不昂贵。