Groovy中拆分字符串的惯用方法
是否有更好/更短/更好的方法执行以下操作:Groovy中拆分字符串的惯用方法,groovy,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的某些值和长度是可变的。您可以通过对“连接”部分进行不同的编程来完成相同的操作: 以下结果与
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的某些值和长度是可变的。您可以通过对“连接”部分进行不同的编程来完成相同的操作: 以下结果与
packageName
的结果相同:
filename.split('_')[0..3].join('_')
它只使用一个范围对数组进行切片,并使用分隔符进行连接。您可以通过对“连接”部分进行不同的编程来完成相同的操作: 以下结果与
packageName
的结果相同:
filename.split('_')[0..3].join('_')
它只使用一个范围来分割数组,并使用分隔符连接
.join
。作为源文件名和
结果是相同的(\uu
),您不需要拆分文件名并再次连接各个部分
您的任务可以使用单个正则表达式完成:
def result = filename.find(/([A-Z0-9]+_){3}[A-Z0-9]+/)
作为源文件名和 结果是相同的(
\uu
),您不需要拆分文件名并再次连接各个部分
您的任务可以使用单个正则表达式完成:
def result = filename.find(/([A-Z0-9]+_){3}[A-Z0-9]+/)
抱歉,我应该提到一些部分可以是字母和/或数字。没问题。然后应将
[A-Z]
更改为[A-Z0-9]
。抱歉,我应该提到一些部件可以是字母和/或数字。没问题。然后应将[A-Z]
更改为[A-Z0-9]
。