Tom*_*han 3 string groovy gradle
我在gradle构建脚本中有一堆字符串属性,它位于camelCase(例如"jmxConsoleWeb")中,我想将每个属性拆分为dash-separated(例如jmx-console-web)字符串.
是否有"非hackish"的方式来做到这一点?
我已经解决了这个问题:
public static String dashSeparated(String s) {
return s.replaceAll(/\B[A-Z]/) { '-' + it }.toLowerCase()
}
Run Code Online (Sandbox Code Playgroud)
另外看看这里
如果您不介意额外的依赖性,可以使用番石榴.这是一个Groovy脚本,演示了它的用法:
@Grab( 'com.google.guava:guava:13.0.1' )
import static com.google.common.base.CaseFormat.*
String.metaClass.caseFormat = { from, to ->
from.to( to, delegate )
}
assert 'varName'.caseFormat( LOWER_CAMEL, UPPER_UNDERSCORE ) == 'VAR_NAME'
assert 'var-name'.caseFormat( LOWER_HYPHEN, UPPER_CAMEL ) == 'VarName'
assert 'var_name'.caseFormat( LOWER_UNDERSCORE, LOWER_CAMEL ) == 'varName'
assert 'VAR_NAME'.caseFormat( UPPER_UNDERSCORE, LOWER_UNDERSCORE ) == 'var_name'
assert 'VarName'.caseFormat( UPPER_CAMEL, LOWER_HYPHEN ) == 'var-name'
Run Code Online (Sandbox Code Playgroud)
当然,在Gradle脚本中,如果您希望将其方法用于构建本身,则需要将guava导入到构建脚本依赖项中
| 归档时间: |
|
| 查看次数: |
2873 次 |
| 最近记录: |