是否有标准的方法来管理groovy中的驼峰字符串?

时间:2012-02-22 05:03:09

标签: groovy

例如groovy将getSomeProperty()方法转换为someProperty

我的字符串需要相同的内容。 prefixMyString已转换为myString。 有没有标准的方法呢?

1 个答案:

答案 0 :(得分:1)

Groovy实际上并未将getSomeProperty()转换为someProperty。它只会转换为另一种方式,将someProperty转换为getSomeProperty()

它使用capitalize(String property)上的org.codehaus.groovy.runtime.MetaClassHelper方法执行此操作。您可以在控制台中运行它以查看它是否有效:

org.codehaus.groovy.runtime.MetaClassHelper.capitalize('fredFlinstone')
// outputs 'FredFlintstone'

完整转化,包括添加setgetis,可在课程groovy.lang.MetaProperty下的getGetterName课程中找到,{ {1}}。

要转换另一种方式,您必须编写自己的代码。但是,这相对简单:

getSetterName

只需更改def convertName(String fullName) { def out = fullName.replaceAll(/^prefix/, '') out[0].toLowerCase() + out[1..-1] } println convertName('prefixMyString') // outputs: myString println convertName('prefixMyOTHERString') // outputs: myOTHERString 即可满足您的需求。请注意,它是一个正则表达式,所以你必须逃避它。


编辑:我犯了一个错误。实际上有一个内置的Java方法来进行decapitalize,所以你可以使用它:

prefix

它的工作方式几乎相同,但使用内置的Java类来处理decapitalization。此方法handles uppercase characters a little differently,以便def convertName(String fullName) { java.beans.Introspector.decapitalize(fullName.replaceAll(/^prefix/, '')) } 返回prefixUPPERCASETest