Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Groovy中拆分字符串的惯用方法_Groovy - Fatal编程技术网

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]