我有一个问题,我想要你的帮助!我有一个特定的REGEX,我把它命名为“独特”,我想存储它给我的数据!这个正则表达式的前缀和后缀!!所以!!有人告诉我使用
var前缀和
var后缀
但我不知道怎么做!
为了你的方便我给你这个正则表达式的xml
<reg name="unique">
<start><![CDATA[ <!-- 72 HOURS FORECASTS -->
]]></start>
<end><![CDATA[<!-- 72 HOURS FORECASTS -->]]></end>
</reg>
我称之为正则表达式的代码是
int k = 0;
for(Xml reg_is:fetchsite.child("site").child("regexps").children("reg")) {
if(reg_is.string("name").contains("unique")){
if(reg_is.child("start").content()=="")
error += "\tNo prefix reg.exp. given.\n";
else
prefix = HtmlMethods.removeBreaks(replaceVariables(reg_is.child("start").content()));
if(reg_is.child("end").content()=="")
error += "\tNo suffix reg.exp. given.\n";
else
suffix = HtmlMethods.removeBreaks(replaceVariables(reg_is.child("end").content()));
}
else{
poleis[k][0]= HtmlMethods.removeBreaks(reg_is.string("name"));
poleis[k][1] = HtmlMethods.removeBreaks(replaceVariables(reg_is.child("start").content()));
poleis[k][2] = HtmlMethods.removeBreaks(replaceVariables(reg_is.child("end").content()));
k++;
}
答案 0 :(得分:1)
对您的代码的一些一般性评论:
使用==检查String
相等是 错误 !改为使用equals()
方法:
reg_is.child("end").content().equals("")
此外,如果您要将String
变量与硬编码String
进行比较,最好先将硬编码的字符串放入。这样,如果变量为null,则程序不会抛出NullPointerException
(因为硬编码的String
永远不会为空!)
"".equals(reg_is.child("end").content())
在进行大量String
连接时,使用StringBuilder
效率更高:
StringBuilder error = new StringBuilder();
error.append("\tNo prefix reg.exp. given.\n");
像奥斯卡雷耶斯所说的那样,使用if语句安全的事情总是使用大括号。如果您添加一行并忘记添加大括号,则可以浪费小时来追踪错误。我知道它发生在我之前......
if(reg_is.child("start").content()==""){
error += "\tNo prefix reg.exp. given.\n";
} else {
prefix = HtmlMethods.removeBreaks(replaceVariables(reg_is.child("start").content()));
}