【问题标题】:Trim the names in the list using Groovy使用 Groovy 修剪列表中的名称
【发布时间】:2018-05-02 17:39:18
【问题描述】:

我在Groovy 中有一个列表,其中包含以下格式的名称:

  • My_name_is_Jack
  • My_name_is_Rock
  • My_name_is_Sunn

如何修剪列表并仅获取列表的最后一部分;即名称 - Jack, Rock and Sunn。 (请注意,名称只有 4 个字符长)

【问题讨论】:

    标签: list groovy replace trim


    【解决方案1】:

    你可以选择其中一种方法。

    • 您可以将 sustring 与 lastIndexOf 一起使用
    • replace方法用空字符串删除My_name_is_

    脚本(使用第一种方法):

    def list = ['My_name_is_Jack', 'My_name_is_Rock', 'My_name_is_Sunn']
    //Closure to get the name
    def getName = { s -> s.substring(s.lastIndexOf('_')+1, s.size()) }
    println list.collect{getName it}
    

    如果你想使用replace,那么使用下面的闭包。

    def getName = { s -> s.replace('My_name_is_','') }
    

    大家可以在线快速试用demo

    【讨论】:

      【解决方案2】:

      或者

      def list = ['My_name_is_Jack', 'My_name_is_Rock', 'My_name_is_Sunn']
      
      println list*.split('_')*.getAt(-1)
      

      【讨论】:

        【解决方案3】:

        您可以删除通用前缀:

        def names = [ "My_name_is_Jack", "My_name_is_Rock", "My_name_is_Sunn", ]
        
        assert ['Jack', 'Rock', 'Sunn'] == names*.replaceFirst('My_name_is_','')
        

        或者由于您实际上对最后四个字符感兴趣,您也可以使用这些:

        assert ['Jack', 'Rock', 'Sunn'] == names*.getAt(-4..-1)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-02-22
          • 2018-09-08
          • 1970-01-01
          • 2020-05-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多