Java中String.format使用的%<s格式符的官方名称是什么?
Java
%< 格式符官方称谓说明 这个格式符的官方名称是相对参数索引符(Relative Argument Index),是java.util.Formatter类定义的格式化规则中的一部分,String.format底层就是基于该类实现的。
它的核心作用是复用紧邻上一个格式说明符已经引用过的参数,不需要重复传入相同参数,也不需要手动编写绝对参数索引(例如%1$s这类写法)。
你给出的测试用例完全符合它的设计逻辑:
String sampleString = "%s, %<s %<s"; String output = String.format(sampleString, "A"); System.out.println(output); // 输出 A, A A
这里第一个%s引用了传入的第一个参数"A",后面两个%<s都复用了前一个格式符用过的"A",因此只需要传1个参数就能完成所有占位符的替换。
补充说明:如果在第一个格式说明符的位置就使用
%<,会抛出MissingFormatArgumentException异常,因为此时不存在可以被复用的前序参数。
补充常见使用场景示例:
- 搭配不同类型格式符复用同一个参数,避免重复传值:
// 输出:数值是10,十六进制是a,八进制是12 System.out.println(String.format("数值是%d,十六进制是%<x,八进制是%<o", 10));
- 可以和绝对参数索引、普通无索引格式符混用,
%<永远仅绑定它前面最近一个格式符使用的参数。
内容的提问来源于stack exchange,提问作者AKJ
相关产品推荐
相关产品推荐

