在groovy中追加字符串的理想方法是什么?

时间:2017-03-02 12:01:26

标签: groovy

我需要在groovy中创建一个map数组的字符串。

必填字符串= ^(123|456|789)

目前我正在做类似下面的事情,这会导致生产框中的性能问题还是应该使用StringBuffer java类?

def getProjectList(def caseResult) {
    def projectList = ""
    caseResult.each { projno ->
        if (projectList.length() == 0) {
            projectList = "^(${projno.project_no}|"
        } else {
            if (projectList.indexOf(projno.project_no) == -1)
                projectList+="${projno.project_no}|"
        }
    }
    projectList = projectList.substring(0, projectList.length() - 1)
    projectList += ')'
    return projectList
}

2 个答案:

答案 0 :(得分:2)

我会为了阅读而轻松...

def getProjectList(def caseResult) {
    "^(${caseResult.project_no.join('|')})"
}

实际上,你只想要独一无二的吗?

def getProjectList(def caseResult) {
    "^(${caseResult.project_no.unique().join('|')})"
}

答案 1 :(得分:0)

  

我需要在groovy中创建一个map数组的字符串。

然后定义参数类型将非常有用。 返回类型也是。

  

这会导致生产箱中的性能问题

好吧,首先定义性能问题。您是否认为您的代码存在任何性能问题?如果没有,它看起来像典型的“过早优化

  

我应该使用StringBuffer java类

如果你担心性能,那么你应该使用StringBuilder,因为StringBuffer是线程安全的,会带来一些性能损失。

如果您的代码遇到任何问题,那么它的可读性比性能要好。 我推荐你这个专门针对这些问题的StackExchange网站 - https://codereview.stackexchange.com/ - 试一试!