Преобразование массива в строку в Java/groovy

У меня есть список вроде этого:

List tripIds    = new ArrayList()
def sql = Sql.newInstance("jdbc:mysql://localhost:3306/steer", "root",
            "", "com.mysql.jdbc.Driver")
        sql.eachRow("SELECT trip.id from trip JOIN department WHERE organization_id = trip.client_id AND  department.id =1") {
            println "Gromit likes ${it.id}"
            tripIds << it.id
        } 

теперь при печати трипид дает мне значение

  [1,2,3,4,5,6,]

теперь я хочу преобразовать этот список в простую строку, например

 1,2,3,4,5,6

Как я могу это сделать

Ответы

Ответ 1

Используйте join, например,

tripIds.join(", ")

Несвязанный, но если вы просто хотите создать список из другого списка, вам лучше сделать что-то вроде map или collect вместо того, чтобы вручную создавать список и добавлять к нему, что менее идиоматический, например (Непроверенные),

def sql = Sql.newInstance("jdbc:mysql://localhost:3306/steer", "root", "", "com.mysql.jdbc.Driver")
def tripIds = sql.map { it.id }

Или, если вы только заботитесь о результирующей строке,

def tripIds = sql.map { it.id }.join(", ")

Ответ 2

В groovy:

def myList = [1,2,3,4,5]
def asString = myList.join(", ")

Ответ 3

Используйте метод объединения, который Groovy добавляет в коллекцию

List l = [1,2,3,4,5,6]
assert l.join(',') == "1,2,3,4,5,6"

Ответ 4

String str = tripIds.toString();
str = str.substring(1, str.length() - 1);

Ответ 5

вы можете попробовать следующий подход для преобразования списка в String

StringBuffer sb = new StringBuffer();
    for (int i=0; i<tripIds.size(); i++)
    {
        if(i!=0){
        sb.append(",").append(tripIds.get(i));
        }else{
            sb.append(tripIds.get(i));
        }
    }
    String listInString = sb.toString();
    System.out.println(listInString);

Пример

ArrayList<String> tripIds = new ArrayList<String>();
        tripIds.add("a");
        tripIds.add("b");
        tripIds.add("c");
        StringBuffer sb = new StringBuffer();
        for (int i=0; i<tripIds.size(); i++)
        {
            if(i!=0){
            sb.append(",").append(tripIds.get(i));
            }else{
                sb.append(tripIds.get(i));
            }
        }
        String listInString = sb.toString();
        System.out.println(listInString);