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

我使用的String如下:

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

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

虽然可能存在一些语法问题,但代码看起来或多或少都可以。 这是一个有效的例子:

 String message = "%%NAME is inviting you."; String name = "Diana"; String result = message.replaceAll("%%NAME", name); 

在这种情况下,我建议使用format方法而不是replaceAll

更新 – 示例

 String template = "%s is inviting you"; String name = "Bob"; String result = String.format(template, name); 
 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); 

..将工作。 (注意重新分配’消息’)

Rythm是一个java模板引擎,现在发布了一个名为String interpolation mode的新function,它允许你做类似的事情:

 String result = Rythm.render("@name is inviting you", "Diana"); 

上面的例子表明你可以按位置将参数传递给模板。 Rythm还允许您按名称传递参数:

 Map args = new HashMap(); args.put("title", "Mr."); args.put("name", "John"); String result = Rythm.render("Hello @title @name", args); 

注意Rythm非常快,比String.format和velocity快2到3倍,因为它将模板编译成java字节代码,运行时性能与StringBuilder的连接非常接近。

链接:

  • 查看function齐全的演示
  • 阅读Rythm的简介
  • 下载最新的软件包或
  • 叉吧

要使用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值…