字符串实用程序加入未按预期工作



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

我正在尝试使用字符串 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"

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

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

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

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

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

请参阅 String.join javadoc

就像 JDBC 查询的提示一样...应使用命名参数在查询中插入值,而不是手动构造查询字符串。

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

相关内容

  • 没有找到相关文章

最新更新