首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java生成带占位符的字符串

Java生成带占位符的字符串
EN

Stack Overflow用户
提问于 2013-06-28 20:20:39
回答 7查看 149.3K关注 0票数 67

我正在寻找一些东西来实现以下目标:

代码语言:javascript
复制
String s = "hello {}!";
s = generate(s, new Object[]{ "world" });
assertEquals(s, "hello world!"); // should be true

我可以自己写,但我似乎曾经见过这样的库,可能是slf4j记录器,但我不想写日志消息。我只想生成字符串。

你知道有一个图书馆可以做到这一点吗?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2013-06-28 20:23:52

请参见String.format方法。

代码语言:javascript
复制
String s = "hello %s!";
s = String.format(s, "world");
assertEquals(s, "hello world!"); // should be true
票数 83
EN

Stack Overflow用户

发布于 2019-12-27 15:24:53

这可以在不使用库的情况下在一行中完成。请检查java.text.MessageFormat类。

示例

代码语言:javascript
复制
String stringWithPlaceHolder = "test String with placeholders {0} {1} {2} {3}";
String formattedStrin = java.text.MessageFormat.format(stringWithPlaceHolder, "place-holder-1", "place-holder-2", "place-holder-3", "place-holder-4");

输出将是

代码语言:javascript
复制
test String with placeholders place-holder-1 place-holder-2 place-holder-3 place-holder-4
票数 24
EN

Stack Overflow用户

发布于 2013-06-28 20:23:01

如果您可以更改占位符的格式,则可以使用String.format()。如果没有,您也可以将其替换为预处理。

代码语言:javascript
复制
String.format("hello %s!", "world");

有关更多信息,请访问this other thread

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17364632

复制
相关文章

相似问题

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