只打印groovy循环中的值

时间:2012-12-12 01:21:09

标签: loops groovy

控制器中的代码

    def sql = groovy.sql.Sql.newInstance ( dbUrl, dbUser, dbPassword, dbDriver )
    String[] allUser = sql.rows("select user_id from users")
    allUser.each()
    {
        print "${it}"
    }

控制台中的输出

{user_id=9}
{user_id=10}
{user_id=11}
{user_id=12}
{user_id=13}
{user_id=14}

如何以仅显示值的方式打印?例如:

9
10
11
12
13
14

2 个答案:

答案 0 :(得分:3)

这使它比它需要的更复杂。 Sql.rows()将返回GroovyRowResult个对象的列表,这样可以轻松检索字段;根据您的变量声明,您有String[]的隐式强制转换。您可以按如下方式进行更改:

def allUser = sql.rows("select user_id from users") 

或者,如果您愿意,

List allUser = sql.rows("select user_id from users")  

然后您可以像这样打印用户ID:

allUser.each {
    println it["user_id"]
}

答案 1 :(得分:-1)

   String userid = "${it}".substring(0, "${it}".length()-1);
   String[] test = userid.split("=")