Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何替换字符串中的命名参数_Java_String_Formatting - Fatal编程技术网

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);