Java 如何替换字符串中的命名参数
我正在从事一个基于Java 如何替换字符串中的命名参数,java,string,formatting,Java,String,Formatting,我正在从事一个基于Java的项目。 我有一个用例,其中我有多个字符串的模板,这些模板需要通过将关键字替换为它们的值来格式化 由于参数的位置和名称并不总是已知的,并且会随着时间的推移而改变,因此我想编写一个函数,该函数使用一个字符串并使用映射将关键字(命名参数)替换为它们的值 例如 Hi my name is %name 如果我有map={“name”:“user1”} 然后我的函数应该用user1替换名称 我试图查找java中是否已有方法或库,但找不到任何方法或库。我认为您需要: String
Java
的项目。
我有一个用例,其中我有多个字符串的模板
,这些模板需要通过将关键字替换为它们的值来格式化
由于参数的位置和名称并不总是已知的,并且会随着时间的推移而改变,因此我想编写一个函数,该函数使用一个字符串并使用映射将关键字(命名参数)替换为它们的值
例如
Hi my name is %name
如果我有map={“name”:“user1”}
然后我的函数应该用user1替换名称
我试图查找java中是否已有方法或库,但找不到任何方法或库。我认为您需要:
String name = "Chack";//you will get its field from your map = {"name":"user1"}
String.format("Hi my name is %s", name);
也许您需要类似的东西(使用贴图并替换以%开头的所有出现的关键点):
Map Map=newhashmap();
地图放置(“名称1”、“用户1”);
map.put(“name2”、“user2”);
String str=“嗨,我的名字是%name1。嗨,我的名字是%name2和%name1”;
字符串结果=map.keySet()
.stream()
.reduce(str,(s,e)->s.replaceAll(“%”+e+“\\b”,map.get(e));
系统输出打印项次(结果);
U可以简单地使用String.format:
String name = "Example"
String.format("Hi my name is %s", name);
或消息格式:
String exampleTemplate = "Hi my name is {0}";
String name = "Example Name"
String message = MessageFormat.format(exampleTemplate, name);
你能和我们分享你的代码吗?这能回答你的问题吗?
String exampleTemplate = "Hi my name is {0}";
String name = "Example Name"
String message = MessageFormat.format(exampleTemplate, name);