groovy: 从列表中删除数字和句号
groovy: remove numbers and period sign from list
我有以下列表:
def myOptions = ['1.0 Small', '2.0 Medium', '3.0 Large']
我想删除数字和句号,只是 return 列表作为
['Small', 'Medium', 'Large']
我正在尝试以下操作,但它仍然打印列表的原始元素。
for (String el: myOptions) {
StringUtils.remove(el, ".").replaceAll("[0-9]", "").trim();
KeywordUtil.logInfo(el);
}
这取决于您的要求的一些细节。如果您想消除直到并包括最后一个 space 个字符的所有内容,您可以这样做。
def myOptions = ['1.0 Small', '2.0 Medium', '3.0 Large']
def results = myOptions.collect { value ->
int idx = value.lastIndexOf(' ')
if(idx >= 0) {
return value[(1 +idx)..-1]
}
value
}
println results
如果最后一个 space 字符不是要拆分的对象,您可以使用类似的方法,但寻找除最后一个 space 之外的其他内容(比如可能消除所有内容直到和例如,包括第一个 space。
千种方式:
def myOptions = ['1.0 Small', '2.0 Medium', '3.0 Large']
def resultSplit = myOptions*.split( ' ' )*.getAt( 1 )
def resultReplace = myOptions*.replaceFirst( /\d+\.\d+ (\w+)/, '' )
assert resultSplit == ['Small', 'Medium', 'Large']
assert resultReplace == ['Small', 'Medium', 'Large']
使用collect
处理列表,split
空白处的每个元素,取last部分拆分
def myOptions = ['1.0 Small', '2.0 Medium', '3.0 Large']
assert myOptions.collect { it.split(' ')[-1]} == ['Small', 'Medium', 'Large']
我有以下列表:
def myOptions = ['1.0 Small', '2.0 Medium', '3.0 Large']
我想删除数字和句号,只是 return 列表作为
['Small', 'Medium', 'Large']
我正在尝试以下操作,但它仍然打印列表的原始元素。
for (String el: myOptions) {
StringUtils.remove(el, ".").replaceAll("[0-9]", "").trim();
KeywordUtil.logInfo(el);
}
这取决于您的要求的一些细节。如果您想消除直到并包括最后一个 space 个字符的所有内容,您可以这样做。
def myOptions = ['1.0 Small', '2.0 Medium', '3.0 Large']
def results = myOptions.collect { value ->
int idx = value.lastIndexOf(' ')
if(idx >= 0) {
return value[(1 +idx)..-1]
}
value
}
println results
如果最后一个 space 字符不是要拆分的对象,您可以使用类似的方法,但寻找除最后一个 space 之外的其他内容(比如可能消除所有内容直到和例如,包括第一个 space。
千种方式:
def myOptions = ['1.0 Small', '2.0 Medium', '3.0 Large']
def resultSplit = myOptions*.split( ' ' )*.getAt( 1 )
def resultReplace = myOptions*.replaceFirst( /\d+\.\d+ (\w+)/, '' )
assert resultSplit == ['Small', 'Medium', 'Large']
assert resultReplace == ['Small', 'Medium', 'Large']
使用collect
处理列表,split
空白处的每个元素,取last部分拆分
def myOptions = ['1.0 Small', '2.0 Medium', '3.0 Large']
assert myOptions.collect { it.split(' ')[-1]} == ['Small', 'Medium', 'Large']