从 Groovy 中的字符串中删除前缀
Remove prefix from string in Groovy
我需要从 Groovy 中的字符串中删除前缀,如果它是字符串的开头(否则不执行任何操作)。
如果前缀是groovy
:
groovyVersion
我预计 Version
- 对于
groovy
我期望空字符串
spock
我预计 spock
现在我用 .minus()
,但当我用
'library-groovy' - 'groovy'
然后我得到 library-
而不是 library-groovy
。
什么是 groovy 实现我想要的方法?
你应该使用正则表达式:
assert 'Version spock' == 'groovyVersion groovy spock'.replaceAll( /\bgroovy/, '' )
我对 Groovy 了解不多,但这是我对此的看法:
def reg = ~/^groovy/ //Match 'groovy' if it is at the beginning of the String
String str = 'library-groovy' - reg
println(str)
区分大小写且不使用正则表达式:
def prefix = 'Groovy';
def string = 'Groovy1234';
def result = '';
if (string.startsWith(prefix)) {
result = string.substring(prefix.size())
print result
}
这个版本简单明了,但符合要求,是对你原来的增量修改:
def trimGroovy = {
it.startsWith('groovy') ? it - 'groovy' : it
}
assert "Version" == trimGroovy("groovyVersion")
assert "" == trimGroovy("groovy")
assert "spock" == trimGroovy("spock")
assert "library-groovy" == trimGroovy("library-groovy")
解决方法:使用-
运算符并剪切正确的字符串。
def sentence = "remove_me_i_am_ok"
def string_to_be_remove = "remove_me_"
String result = sentence - string_to_be_remove
print("output: ${result}")
/* output: i_am_ok */
我需要从 Groovy 中的字符串中删除前缀,如果它是字符串的开头(否则不执行任何操作)。
如果前缀是groovy
:
groovyVersion
我预计Version
- 对于
groovy
我期望空字符串 spock
我预计spock
现在我用 .minus()
,但当我用
'library-groovy' - 'groovy'
然后我得到 library-
而不是 library-groovy
。
什么是 groovy 实现我想要的方法?
你应该使用正则表达式:
assert 'Version spock' == 'groovyVersion groovy spock'.replaceAll( /\bgroovy/, '' )
我对 Groovy 了解不多,但这是我对此的看法:
def reg = ~/^groovy/ //Match 'groovy' if it is at the beginning of the String
String str = 'library-groovy' - reg
println(str)
区分大小写且不使用正则表达式:
def prefix = 'Groovy';
def string = 'Groovy1234';
def result = '';
if (string.startsWith(prefix)) {
result = string.substring(prefix.size())
print result
}
这个版本简单明了,但符合要求,是对你原来的增量修改:
def trimGroovy = {
it.startsWith('groovy') ? it - 'groovy' : it
}
assert "Version" == trimGroovy("groovyVersion")
assert "" == trimGroovy("groovy")
assert "spock" == trimGroovy("spock")
assert "library-groovy" == trimGroovy("library-groovy")
解决方法:使用-
运算符并剪切正确的字符串。
def sentence = "remove_me_i_am_ok"
def string_to_be_remove = "remove_me_"
String result = sentence - string_to_be_remove
print("output: ${result}")
/* output: i_am_ok */