如何在Java中将整数的HashSet转换为逗号分隔的字符串

问题描述 投票:0回答:2

我想将整数的HashSet转换为逗号分隔的字符串,

所以我可以在MySQL查询的where子句中使用相同的内容。

//[MySQL - Sample table Schema]
my_table
state_id INTEGER
shop_id INTEGER
Set<Integer> uniqueShopIds = shopService.GetShopIds(); // This returns HashSet<Integer>
String inClause = ; // **How do i convert the uniqueShopIds to comma separated String**
String selectQuery = String.format("SELECT DISTINCT(state_id) FROM my_table WHERE shop_id IN (%s);", inClause);

[如果有其他方法,我可以在PreparedStatment的IN CLAUSE中直接使用HashSet,请共享。

java hashset
2个回答
2
投票
Set<Integer> s = new HashSet<>(Arrays.asList(1, 2, 3));
String str = s.stream().map(Object::toString).collect(Collectors.joining(","));
System.out.println(str); // prints 1,2,3

0
投票

然后是这个。

Set<Integer> s = new HashSet<>(Arrays.asList(1, 2, 3));

集合的默认toString是一个由[]包围的csv

因此跳过第一个并删除最后一个

String str = s.toString().substring(1).replace("]","");

或只是取其间的子字符串

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

System.out.println(str);

两者都会导致

1, 2, 3
© www.soinside.com 2019 - 2024. All rights reserved.