[英]Replacing substring inside string not working? Java XML
All, 所有,
I am storing SQL queries as XML for my java application to improve maintainability. 我将SQL查询以XML格式存储在Java应用程序中,以提高可维护性。
Parts of my query require parameterisation, therefore I have created identifiers that I can use to replace with values when I create my query string. 查询的一部分需要参数化,因此我创建了标识符,可以在创建查询字符串时将其替换为值。
eg 例如
WHERE CB.callback_date >= TO_DATE('$LASTDATE$','DD/MM/YYYY')
AND CB.callback_date < TO_DATE('$FROMDATE$','DD/MM/YYYY')
I have a function in my application that will replace these substrings. 我的应用程序中有一个函数可以替换这些子字符串。
public static String xmlQueryPrep(String prep)
{
//add dates to query
prep.replace("'$LASTDATE$'", "'20/10/2013'");
prep.replace("'$FROMDATE$'", "'18/10/2013'");
prep.replace("<", "<").replace(">", ">");
return prep;
}
For some reason it is replacing the ASCII codes for < and > but it is not replacing my markup 由于某种原因,它正在替换<和>的ASCII代码,但没有替换我的标记
Output 输出量
WHERE CB.callback_date >= TO_DATE('$LASTDATE$','DD/MM/YYYY')
AND CB.callback_date < TO_DATE('$FROMDATE$','DD/MM/YYYY')
Why is it not replacing correctly? 为什么不能正确更换?
Strings
in Java are immutables . Java中的
Strings
是不可变的 。
An object is considered immutable if its state cannot change after it is constructed
如果对象在构造后无法改变,则认为该对象是不可变的
If you take a look at the documentation , you will see that each method that is applied to a String to modify its content will return a new String. 如果您看一下文档 ,将会看到应用于String修改其内容的每个方法都将返回一个新的String。
You should do : 你应该做 :
prep = prep.replace("'$LASTDATE$'", "'20/10/2013'");
prep = prep.replace("'$FROMDATE$'", "'18/10/2013'");
prep = prep.replace("<", "<").replace(">", ">");
return prep;
Or even better ( method chaining ): 甚至更好( 方法链接 ):
return prep.replace("'$LASTDATE$'", "'20/10/2013'")
.replace("'$FROMDATE$'", "'18/10/2013'")
.replace("<", "<")
.replace(">", ">");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.