首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在String.format中重用参数?

在String.format中重用参数?
EN

Stack Overflow用户
提问于 2011-08-01 01:48:05
回答 2查看 80.1K关注 0票数 166
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标记的参数?

EN

回答 2

Stack Overflow用户

发布于 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

票数 20
EN

Stack Overflow用户

发布于 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"
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6891175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档