关于java中的前缀和后缀的问题

时间:2010-06-03 19:27:22

标签: java xml

我有一个问题,我想要你的帮助!我有一个特定的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++;
 }

1 个答案:

答案 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()));
    }