如何替换字符串中的单词?
我使用的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值…