如何替换字符串中的单词?

时间:2011-09-28 01:57:55

标签: java string

我正在使用String之类的:

String message = "%%NAME is inviting you";

我正在使用message.replaceAll("%%NAME", me);,其中meString。这行代码对我不起作用。我想知道我做错了什么?

5 个答案:

答案 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值...