我试图在我的程序中引入一个方法,该方法应该导致子字符串。我写了下面的代码,但为什么这不起作用?
class testmethod {
String FQDN = "TEST.domain.local"
def sname = shortname(FQDN);
println $sname
def shortname(Longname)
{
shortname1 = Longname.substring(0, Longname.indexOf('.'))
return shortname1
}
}
答案 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