如何将整数的 HashSet 转换为 Java 中的逗号分隔字符串
How to Convert HashSet of Integers to Comma Separated String in Java
我想将整数的 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,请分享。
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
然后就是这个
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
我想将整数的 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,请分享。
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
然后就是这个
Set<Integer> s = new HashSet<>(Arrays.asList(1, 2, 3));
集合的默认 toString
是被 []
所以跳过第一个并删除最后一个
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