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);