Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 在Java/Groovy中将数组转换为字符串_Arrays_String_Groovy - Fatal编程技术网

Arrays 在Java/Groovy中将数组转换为字符串

Arrays 在Java/Groovy中将数组转换为字符串,arrays,string,groovy,Arrays,String,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

我有这样一份清单:

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

我如何才能做到这一点?

使用
join
,例如

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

不相关,但如果您只是想从另一个列表中创建一个列表,那么最好执行
map
collect
之类的操作,而不是手动创建一个列表并将其附加到列表中,因为列表不太惯用,例如(未测试)

或者如果您只关心结果字符串

def tripIds = sql.map { it.id }.join(", ")
在groovy中:

def myList = [1,2,3,4,5]
def asString = myList.join(", ")
使用Groovy添加到集合中的

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

您可以尝试以下方法将列表转换为字符串

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);
StringBuffer sb=new StringBuffer();

对于(int i=0;i)我喜欢很多工作。为什么在这两种情况下都要重复添加
tripid.get(i)
的代码?既然如此,为什么要显示两次创建的代码;将其放在一个方法中,并从示例中调用它,不是更适合垂直空间吗?我假设您是按行付费的?
List l = [1,2,3,4,5,6]
assert l.join(',') == "1,2,3,4,5,6"
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);