【问题标题】:Replace a specific element in a Groovy list替换 Groovy 列表中的特定元素
【发布时间】:2020-09-27 09:10:28
【问题描述】:

我需要根据条件修改 Groovy 列表中的某些元素。例如

def rowmbrs = [DW, PL01, ENT, ACCT]

我需要运行一个条件,例如 - 如果上面列表中的元素之一是 PL01,则将其替换为 GL01。如果你能给我一个提示或一些例子来实现这个要求,那就太好了。提前致谢。

运行逻辑后的预期结果

[DW, GL01, ENT, ACCT]

【问题讨论】:

    标签: string list groovy replace


    【解决方案1】:

    你可以使用groovy风格的映射功能:

    ​def rowmbrs = ['DW', 'PL01', 'ENT', 'ACCT']
    rowmbrs.collect {
        it == 'PL01' ? 'GL01' : it
    }​
    

    或者如果您只需要更改一个元素,您可以使用它的元素的索引:

    rowmbrs[rowmbrs.indexOf('PL01')] = 'GL01'​​​​​​​​​​​​​​​​​
    

    【讨论】:

      【解决方案2】:

      你可以使用

      Collections.replaceAll(rowmbrs, "PL01", "TEST")
      

      【讨论】:

      • 我也尝试了其他建议,但这对我来说效果更好。谢谢普拉泰克。
      【解决方案3】:

      如果顺序不重要:

      def rowmbrs = ['DW', 'PL01', 'ENT', 'ACCT']
      rowmbrs = rowmbrs - 'PL01' + 'GL01'
      assert '[DW, ENT, ACCT, GL01]' == rowmbrs.toString() 
      

      【讨论】:

        猜你喜欢
        • 2015-12-29
        • 2017-02-01
        • 2018-05-06
        • 1970-01-01
        • 2021-09-21
        • 2019-03-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多