使用方法获取子字符串不起作用

时间:2015-07-09 09:29:28

标签: java groovy

我试图在我的程序中引入一个方法,该方法应该导致子字符串。我写了下面的代码,但为什么这不起作用?

class testmethod {

   String FQDN = "TEST.domain.local"
   def sname = shortname(FQDN);
   println $sname

     def shortname(Longname)
        {
          shortname1 =  Longname.substring(0, Longname.indexOf('.'))
          return shortname1
        }
     }

2 个答案:

答案 0 :(得分:0)

首先,代码应该是(为了更好的可读性): -

def shortname(String Longname)不是def shortname(Longname)

shortname1 = Longname.substring(0, Longname.indexOf('.'))中的shortname1也未定义。

此外,您可以尝试: -

def shortname(String Longname)
        {
          String[] shortnameArr =  Longname.split("\\.");
          return shortnameArr[0];// will return TEST
        }

答案 1 :(得分:0)

您在一段代码中混合了Groovy的脚本和类概念。

只需删除类定义和$符号即可使用脚本方式:

   String FQDN = "TEST.domain.local"
   def sname = shortname(FQDN);
   println sname

     def shortname(Longname)
        {
          shortname1 =  Longname.substring(0, Longname.indexOf('.'))
          return shortname1
        }

或者添加类初始化和局部变量声明以使用类方式:

class testmethod {
   String FQDN = "TEST.domain.local"
   def sname = shortname(FQDN);

     def shortname(Longname)
        {
          def shortname1 =  Longname.substring(0, Longname.indexOf('.'))
          return shortname1
        }
}

def tc = new testmethod()
println tc.sname