我正在使用String
之类的:
String message = "%%NAME is inviting you";
我正在使用message.replaceAll("%%NAME", me);
,其中me
是String
。这行代码对我不起作用。我想知道我做错了什么?
答案 0 :(得分:16)
代码看起来或多或少都可以,但可能存在一些语法问题。这是一个有效的例子:
String message = "%%NAME is inviting you.";
String name = "Diana";
String result = message.replaceAll("%%NAME", name);
答案 1 :(得分:7)
我建议在这种情况下使用format
method代替replaceAll
。
String template = "%s is inviting you";
String name = "Bob";
String result = String.format(template, name);
答案 2 :(得分:4)
String message = "%%name is inviting you";
String uname = "Keyser Sose";
message.replaceAll("%%name", uname);
...不会修改'message',因为Strings(在java中)是不可变的
String message = "%%name is inviting you";
String uname = "Keyser Sose";
message = message.replaceAll("%%name", uname);
..会奏效。 (注意重新分配'消息')
答案 3 :(得分:2)
Rythm现在发布了一个名为 String interpolation mode 的新功能的java模板引擎,它允许您执行以下操作:
String result = Rythm.render("@name is inviting you", "Diana");
以上情况表明您可以按位置将参数传递给模板。 Rythm还允许您按名称传递参数:
Map<String, Object> args = new HashMap<String, Object>();
args.put("title", "Mr.");
args.put("name", "John");
String result = Rythm.render("Hello @title @name", args);
注意Rythm非常快,比String.format和velocity快2到3倍,因为它将模板编译成java字节代码,运行时性能与StringBuilder的连接非常接近。
链接:
答案 4 :(得分:0)
要使用StringUtil.Replace将字符串字符替换为另一个字符串,我尝试了以下操作,我可以从单个字符串替换多个字符串值。
String info =“[$ FIRSTNAME $] [$ LASTNAME $] [$ EMAIL $] _ [$ ADDRESS $]”;
String replacementString = StringUtil.replace(info,new String [] {“[$ FIRSTNAME $]”,“[$ LASTNAME $]”,“[$ EMAIL $]”,“[$ ADDRESS $]”}, new String [] {“XYZ”,“ABC”,“abc @ abc.com”,“ABCD”});
这将用新提供的值替换info的String值...