Java 字符串'的问题;s replace()方法
我试图替换以Java 字符串'的问题;s replace()方法,java,string,Java,String,我试图替换以$开头的字符串部分(我手动使用字符串中的参数),但由于某些原因,它失败了。以下是我所拥有的: public void sendNotificationOfAcceptedMeeting(String candidateName, DateTime dateTime) { Map<String,String> params = new HashMap<String,String>(); params.put("date", da
$
开头的字符串部分(我手动使用字符串中的参数),但由于某些原因,它失败了。以下是我所拥有的:
public void sendNotificationOfAcceptedMeeting(String candidateName, DateTime dateTime) {
Map<String,String> params = new HashMap<String,String>();
params.put("date", dateTime.toString(DATETIME_FORMAT));
params.put("candidate", candidateName);
sendEmailWithTemplate(TEMPLATE_ALL_ACCEPTED, params);
}
但是,第三种方法中的系统输出打印:
map size: 2
********************
The meeting request at $date with $candidate was
accepted by all interviewers. ***BEFORE
$candidate ***KEY
Acceeedsasd Stetfghfghasd ***VALUE
The meeting request at $date with $candidate was
accepted by all interviewers. AFTER
********************
The meeting request at $date with $candidate was
accepted by all interviewers. ***BEFORE
$date ***KEY
27/12/2014 8:00 ***VALUE
The meeting request at $date with $candidate was
accepted by all interviewers. AFTER
这清楚地表明它不能代替参数。。。我想可能是$
破坏了它(regex),但是replace()
不同于replaceAll()
接受字符串-而不是regex。我没有主意了,谢谢你的帮助。你必须这样做:
toReturn = toReturn.replace("$" + entry.getKey(), entry.getValue());
然后打印toReturn的值,您必须执行以下操作:
toReturn = toReturn.replace("$" + entry.getKey(), entry.getValue());
然后打印toReturn的值尝试将代码中的“$”替换为“\0024”
像这样:
toReturn=toReturn.replace(“\0024”+entry.getKey(),entry.getValue()) 尝试将代码中的“$”替换为“\0024”
像这样:
toReturn=toReturn.replace(“\0024”+entry.getKey(),entry.getValue()) 问题在于replace方法返回一个
字符串,而该字符串未被使用。请参见下面我将结果放入replacedText
的位置
String replacedText = toReturn.replace("$" + entry.getKey(), entry.getValue());
System.out.println("$" + entry.getKey() + " ***KEY");
System.out.println(entry.getValue() + " ***VALUE");
System.out.println(replacedText+ " AFTER");
问题是replace方法返回一个字符串
,而该字符串未被使用。请参见下面我将结果放入replacedText
的位置
String replacedText = toReturn.replace("$" + entry.getKey(), entry.getValue());
System.out.println("$" + entry.getKey() + " ***KEY");
System.out.println(entry.getValue() + " ***VALUE");
System.out.println(replacedText+ " AFTER");
字符串是不可变的,不能替换,
只是
字符串是不可变的,不能替换,
只是
:).. 至少你得到了答案:):。。至少您得到了答案:)正如我所说,$不是问题,因为replace将字符串作为输入,而不是regex。感谢您的尝试:)正如我所说,$不是问题,因为replace将字符串作为输入,而不是regex。感谢您的尝试:)
String replacedText = toReturn.replace("$" + entry.getKey(), entry.getValue());
System.out.println("$" + entry.getKey() + " ***KEY");
System.out.println(entry.getValue() + " ***VALUE");
System.out.println(replacedText+ " AFTER");
toReturn = toReturn.replace("$...","")