例如groovy將getSomeProperty()
方法轉換爲someProperty
。Groovy中是否有標準的管理駝峯字符串的方法?
我需要爲我的字符串相同。 prefixMyString
轉換爲myString
。 有沒有標準的方法來做到這一點?
例如groovy將getSomeProperty()
方法轉換爲someProperty
。Groovy中是否有標準的管理駝峯字符串的方法?
我需要爲我的字符串相同。 prefixMyString
轉換爲myString
。 有沒有標準的方法來做到這一點?
Groovy實際上並沒有將getSomeProperty()
轉換爲someProperty
。它只轉換其他方式,將someProperty
轉換爲getSomeProperty()
它通過org.codehaus.groovy.runtime.MetaClassHelper
上的capitalize(String property)
方法執行此操作。下的方法getGetterName
和getSetterName
org.codehaus.groovy.runtime.MetaClassHelper.capitalize('fredFlinstone')
// outputs 'FredFlintstone'
完全轉化,包括添加set
,get
,或is
,可以在類groovy.lang.MetaProperty
發現,:您可以在控制檯中運行這個,看看它的工作。
要轉換另一種方式,您必須編寫自己的代碼。然而,這相對簡單:
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
只要改變prefix
滿足您的需求。請注意,這是一個正則表達式,所以你必須逃避它。
編輯:我犯了一個錯誤。這裏實際上是一個內置的Java方法開頭字母爲小寫,所以你可以使用這個:
def convertName(String fullName) {
java.beans.Introspector.decapitalize(fullName.replaceAll(/^prefix/, ''))
}
它的工作原理幾乎相同,但使用內置的Java類用於處理資本化。此方法handles uppercase characters a little differently,以便prefixUPPERCASETest
返回UPPERCASETest
。
另外groovy很好地管理upperCASEDParts。我也需要它。 – guai 2012-02-22 05:07:57