Groovy灵活的replaceAll方法

Groovy灵活的replaceAll方法,groovy,Groovy,我是groovy的新手,这就是为什么我不能理解一件事。 我有一个带有groovy类的ant任务,它应该从属性文件中读取行 并切换一些property.values,例如1与“1”,2与“2”等。 我已经提取了值,所以我得到了1,2,3等或5,7,1,现在问题开始了 我知道replaceAll方法,但是否有可能以某种方式使其更灵活?或者如果我想改变1 2 3,我必须定义3个replaceAll方法(“1”,“1”)(“2”,“2”)(“3”,“3”)? 哦,是的,仅在输出时切换值。您可以使用收集和

我是groovy的新手,这就是为什么我不能理解一件事。 我有一个带有groovy类的ant任务,它应该从属性文件中读取行 并切换一些property.values,例如1与“1”,2与“2”等。 我已经提取了值,所以我得到了1,2,3等或5,7,1,现在问题开始了 我知道replaceAll方法,但是否有可能以某种方式使其更灵活?或者如果我想改变1 2 3,我必须定义3个replaceAll方法(“1”,“1”)(“2”,“2”)(“3”,“3”)?
哦,是的,仅在输出时切换值。

您可以使用
收集
开关
(假设我理解问题:

def a = [ 1, 4, 2 ]

def b = a.collect {
  switch( it ) {
    case 1  : 'One' ; break
    case 2  : 'Two' ; break
    case 3  : 'Three' ; break
    default : it
  }
}

assert b = [ 'One', 4, 'Two' ]

// And the other way

def c = b.collect {
  switch( it ) {
    case 'One'   : 1 ; break
    case 'Two'   : 2 ; break
    case 'Three' : 3 ; break
    default      : it
  }
}

assert c == a 

您可以使用
收集
开关
(假设我理解问题:

def a = [ 1, 4, 2 ]

def b = a.collect {
  switch( it ) {
    case 1  : 'One' ; break
    case 2  : 'Two' ; break
    case 3  : 'Three' ; break
    default : it
  }
}

assert b = [ 'One', 4, 'Two' ]

// And the other way

def c = b.collect {
  switch( it ) {
    case 'One'   : 1 ; break
    case 'Two'   : 2 ; break
    case 'Three' : 3 ; break
    default      : it
  }
}

assert c == a 

谢谢你的想法,还有一个问题,这很好用,但是当我尝试用另一种方式(从字符串到int)时它没有找到任何案例,就像案例“一”一样:打印“1”并收集它的property.value.collect我的想法有什么问题?@user2141889我不确定我是否理解,但我已经更新了我的答案,将
b
改回
a
,这有帮助吗?谢谢这个想法,还有一个问题,这很好用,但当我尝试用另一种方法(从字符串到int)时它没有找到任何案例,就像案例“一”:打印“1”并收集它的property.value.collect我的想法有什么问题?@user2141889我不确定我是否理解,但我已经更新了我的答案,将
b
改回
a
,这有帮助吗?