String hello = "Hello";
String.format("%s %s %s %s %s %s", hello, hello, hello, hello, hello, hello);
hello hello hello hello hello hello
在对format方法的调用中,hello
变量是否需要重复多次,或者是否有一个简写版本允许您一次指定要应用于所有%s
标记的参数?
发布于 2018-07-10 23:47:57
您需要使用索引参数%[argument_index$]
,如下所示:
String hello = "Hello";
String.format("%1$s %1$s %1$s %1$s %1$s %1$s", hello);
结果:Hello Hello Hello Hello Hello Hello
发布于 2017-06-14 20:39:39
在String.format
中重用参数的一种常见情况是使用分隔符(例如,用于CSV的";"
或用于控制台的tab )。
System.out.println(String.format("%s %2$s %s %2$s %s %n", "a", ";", "b", "c"));
// "a ; ; ; b"
这不是期望的输出。"c"
不会出现在任何地方。
您需要首先使用分隔符(使用%s
),并且仅对以下情况使用参数索引(%2$s
):
System.out.println(String.format("%s %s %s %2$s %s %n", "a", ";", "b", "c"));
// "a ; b ; c"
添加空格是为了提高可读性和进行调试。一旦格式显示为正确,就可以在文本编辑器中删除空格:
System.out.println(String.format("%s%s%s%2$s%s%n", "a", ";", "b", "c"));
// "a;b;c"
https://stackoverflow.com/questions/6891175
复制相似问题