You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Groovy脚本将多行键值输出转换为指定格式的Map?

修改Groovy脚本输出为指定Map格式

原脚本及当前输出

原Groovy脚本如下:

def projectDirectories = [
    "golang-base",
    "java-base",
    "cpp-base",
    "ubuntu-fips",
    "suse-base",
    "golang-base",
    "java-base",
    "cpp-base",
    "ubuntu-fips",
    "suse-base",
]
def partition(array, size) {
    def partitions = []
    int partitionCount = array.size() / size

    partitionCount.times { partitionNumber ->
        def start = partitionNumber * size
        def end = start + size - 1
        partitions << array[start..end]
    }

    if (array.size() % size) partitions << array[partitionCount * size..-1]
    return partitions
}

def results = partition(projectDirectories, 2)
assert results instanceof List
for(i=0;i<results.size();i++)
{
    def resultUUID = UUID.randomUUID()
                 .toString()
                 .split('-')[-1..-2]
                 .join()
                 .toUpperCase()
    println (i+":"+resultUUID);

}

当前脚本输出为:

[0:0D0759825372ADC2]
[1:E0E191BDFFD9B882]
[2:1AC6086897BA9FFE]
[3:8F92F1C0B70697B9]
[4:EC0D5D755849A01A]

修改后的脚本

要得到形如[0:0D0759825372ADC2,1:E0E191BDFFD9B882,2:1AC6086897BA9FFE,3:8F92F1C0B70697B9,4:EC0D5D755849A01A]的Map格式输出,修改后的脚本如下:

def projectDirectories = [
    "golang-base",
    "java-base",
    "cpp-base",
    "ubuntu-fips",
    "suse-base",
    "golang-base",
    "java-base",
    "cpp-base",
    "ubuntu-fips",
    "suse-base",
]
def partition(array, size) {
    def partitions = []
    int partitionCount = array.size() / size

    partitionCount.times { partitionNumber ->
        def start = partitionNumber * size
        def end = start + size - 1
        partitions << array[start..end]
    }

    if (array.size() % size) partitions << array[partitionCount * size..-1]
    return partitions
}

def results = partition(projectDirectories, 2)
assert results instanceof List
def resultMap = [:]
for(i=0;i<results.size();i++)
{
    def resultUUID = UUID.randomUUID()
                 .toString()
                 .split('-')[-1..-2]
                 .join()
                 .toUpperCase()
    resultMap.put(i, resultUUID)
}
// 输出指定格式的Map字符串
println "[" + resultMap.collect { k, v -> "$k:$v" }.join(",") + "]"

改动说明

  • 新增resultMap变量存储键值对数据;
  • 循环内不再直接打印,而是将索引与对应UUID存入Map;
  • 最后通过collect将Map键值对转为key:value格式字符串,用逗号拼接后包裹方括号输出。

内容的提问来源于stack exchange,提问作者Hare Krshn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 08:47:47