String Utils加入不按预期工作

时间:2018-03-21 15:13:01

标签: java list apache-stringutils string-utils

我有一个从列表A中的查询返回的字符串列表。

我正在尝试使用String Utils.join将列表中的值组合为以逗号和引号分隔的字符串。但它没有按预期工作。

abcList中的值 - [abc,cde,fgh]

abcList.addAll(jdbcTemplate.queryForList(abcSql, String.class));
String abc= StringUtils.join(abcList, "','");
abc = "'" +abc+ "'";

预期输出 - ' abc',' cde',' fgh'
实际输出 - ' abc,cde,fgh'

我不确定我在这里做错了什么,因为我想通过" IN"将字符串abc中的值传递给查询。条件。

2 个答案:

答案 0 :(得分:1)

作为替代方案,您也可以使用stream.Collectors.joining

List<String> myList = Arrays.asList("abc","def","ghi");
String joined = myList.stream().collect(Collectors.joining("','", "'", "'"));
System.out.println(joined);

答案 1 :(得分:1)

如果您使用的是Java 8,则可以使用本机方法来连接字符串。

List<String> list = <get a list of strings somehow>;
String joinedString = String.join("','", list);

See the String.join javadoc

正如JDBC查询的提示......您应该使用命名参数在查询中插入值,而不是手动构造查询字符串。

有关示例,请参阅this SO帖子。