【问题标题】:How to Convert HashSet of Integers to Comma Separated String in Java [duplicate]如何在 Java 中将整数的 HashSet 转换为逗号分隔的字符串 [重复]
【发布时间】:2020-09-15 01:40:19
【问题描述】:

我想将整数的 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,请分享。

【问题讨论】:

  • @azro 谢谢,但我想将整数集转换为逗号分隔的字符串,对于字符串集,我已经解决了。

标签: java hashset


【解决方案1】:

然后就是这个。

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

【讨论】:

    【解决方案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
    

    【讨论】:

    • 谢谢@Mark Bramnik
    猜你喜欢
    • 2013-09-30
    • 2011-09-20
    • 2013-08-08
    • 2014-01-08
    • 2016-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多