我的属性文件
下有这个键值对mailsubject = REDEX Application --- Credentials
mailtext = Dear User,\n \
Following Are the credentials for REDEX Mapping Application -- pwd
setFrom = xxxs31@gmail.com
这是我在我的java文件中使用它们通过java发送电子邮件的地方
try {
Message message = new MimeMessage(session);
message.setSubject(props_load.getProperty("mailsubject"));
message.setText(props_load.getProperty("mailtext") + " " +generatedpwd);
Transport.send(message);
result = "success";
} catch (MessagingException e) {
result = "fail";
logger.error("Exception Occured"+ "sendemalto" +sendemalto , e);
}
我的问题是,
是否可以在单词后插入用户名,使其看起来像
亲爱的用户Kiran, 以下是REDEX Mapping Application的凭据
答案 0 :(得分:4)
如何定义占位符并将其替换为您的用户名:
props_load.getProperty("mailtext").replace("{{username}}", username)
你的模板是这样的:
mailtext = Dear User {{username}},\n ...
答案 1 :(得分:1)
MessageFormat form = new MessageFormat("Dear {0}, following...");
String userName = "Kiran";
Object[] testArgs = {userName};
System.out.println( form.format(testArgs) );
输出:"亲爱的Kiran,关注......"
http://docs.oracle.com/javase/7/docs/api/java/text/MessageFormat.html
答案 2 :(得分:0)
使用String.replace(),String.replaceFirst()或String.replaceAll(),具体取决于您要执行的操作。
String.replace()将另一个文本替换为给定文本。所以你可以这样做:
"Dear User, Following are...".replace("User","User "+username);
或者,如果您需要更多控制,请将String.replaceFirst()或String.replaceAll()与正则表达式一起使用。 replaceFirst()仅替换第一个匹配项,而replaceAll()替换所有匹配项:
"Dear User, Following are...".replaceFirst("^Dear User"), "Dear User "+username);
正则表达式为您提供了更多控制权,但复杂性更高,因此您需要阅读它才能正确使用它。