如何在Groovy中修改数组,为元素添加单引号包裹的双引号?
Groovy列表格式转换方法
首先注意:你给出的原始代码def String=[Teacher 1, Teacher 2, Teacher 3]存在语法错误,Groovy会将Teacher 1解析为非法表达式。正确的原始列表定义应该是def teachers = ['Teacher 1', 'Teacher 2', 'Teacher 3'],以下针对两种场景提供转换方案:
场景1:批量修改代码文本
如果是要将这段代码文本转换成目标格式,可使用正则替换:
- 在代码编辑器中,用正则表达式匹配
(Teacher \d),替换为'"\1"'即可一键完成转换。 - 也可以用Groovy脚本自动处理代码字符串:
def originalCode = 'def String=[Teacher 1, Teacher 2, Teacher 3]' def modifiedCode = originalCode.replaceAll(/(Teacher \d)/, /'"\1"'/) println modifiedCode // 输出结果:def String=['"Teacher 1"','"Teacher 2"','"Teacher 3"']
场景2:在Groovy程序中处理列表元素
如果是在程序里已有合法列表,需要生成目标格式的内容:
// 正确定义原始列表 def teachers = ['Teacher 1', 'Teacher 2', 'Teacher 3'] // 对每个元素进行格式转换 def formattedList = teachers.collect { "'\"$it\"'" } // 输出目标格式的代码字符串 println "def String=[${formattedList.join(',')}]" // 输出结果:def String=['"Teacher 1"','"Teacher 2"','"Teacher 3"']
注意:避免用
String作为变量名,它是Groovy的内置类名,容易导致混淆,建议改用teachers这类语义化名称。
内容的提问来源于stack exchange,提问作者Ram Kashyap
相关产品推荐
相关产品推荐

