【问题标题】:Idiomatic way to split string in Groovy在 Groovy 中拆分字符串的惯用方法
【发布时间】:2018-06-06 08:21:08
【问题描述】:

是否有更好/更短/更好的方法来执行以下操作:

filename = "AA_BB_CC_DD_EE_FF.xyz"
parts = filename.split("_")
packageName = "${parts[0]}_${parts[1]}_${parts[2]}_${parts[3]}"
//packageName == "AA_BB_CC_DD"

格式保持不变(6 部分,_ 分隔符),但 AA、BB 的某些值和长度是可变的。

【问题讨论】:

    标签: groovy


    【解决方案1】:

    您可以通过对“加入”部分进行不同的编程来做同样的事情:

    以下结果与packageName 相同:

    filename.split('_')[0..3].join('_')
    

    它只是使用一个范围来分割数组,并使用.join 与分隔符连接。

    【讨论】:

      【解决方案2】:

      作为源文件名中“段”之间的分隔符 结果是一样的(_),你不需要拆分文件名并重新加入部分。

      您的任务可以用一个正则表达式完成:

      def result = filename.find(/([A-Z0-9]+_){3}[A-Z0-9]+/)
      

      【讨论】:

      • 抱歉,我应该提到某些部分可以是字母和/或数字。
      • 没问题。那么[A-Z]应该改为[A-Z0-9]
      猜你喜欢
      • 2020-06-03
      • 1970-01-01
      • 2018-11-17
      • 2023-03-17
      • 1970-01-01
      • 2013-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多