在Groovy中拆分字符串的惯用方法

时间:2018-06-06 08:21:09

标签: groovy

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

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的某些值和长度是可变的。

2 个答案:

答案 0 :(得分:2)

你可以通过不同地编写“加入”部分来做同样的事情:

以下结果与packageName相同:

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

它只使用一个范围来对数组进行切片,并使用.join与分隔符连接。

答案 1 :(得分:1)

作为"段之间的分隔符char"在源文件名和 结果相同(def result = filename.find(/([A-Z0-9]+_){3}[A-Z0-9]+/) ),您不需要拆分文件名并再次加入部分。

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

{{1}}