假设我有一个字符串列表.
List<String> s = new ArrayList<>();
s.add("one");
s.add("two");
s.add("three");
Run Code Online (Sandbox Code Playgroud)
当我使用StringUtils.join(",", s)它时,给我结果
"one, two, three"
Run Code Online (Sandbox Code Playgroud)
而我需要输出为
"one","two","three"
Run Code Online (Sandbox Code Playgroud)
我们不喜欢使用Guava实用程序,因为项目不处于活动状态.
是否可以通过Apache Commons实用程序?
如何通过实用程序实现这一点,而不是编写自己的逻辑来做同样的事情?
你可以分两步完成StringUtils,
List<String> s = new ArrayList<>();
s.add("one");
s.add("two");
s.add("three");
String step1 = StringUtils.join(s, "\", \"");// Join with ", "
String step2 = StringUtils.wrap(step1, "\"");// Wrap step1 with "
System.out.println(step2);
Run Code Online (Sandbox Code Playgroud)
输出,
"one", "two", "three"
Run Code Online (Sandbox Code Playgroud)
我需要在使用$ in运算符时在mongo数据库查询中传递它们
对于mongodb查询,您不需要以这种方式构建它,特别是在$in您可以按以下方式查询文档的情况下,
BasicDBObject yourInQuery = new BasicDBObject();
yourInQuery.put("in_column", new BasicDBObject("$in", yourList));
DBCursor cursor = collection.find(yourInQuery);
Run Code Online (Sandbox Code Playgroud)
请在以下链接中阅读更多相关信息,
String joined = s.stream()
.map(plain -> '"' + StringEscapeUtils.escapeJava(plain) + '"')
.collect(Collectors.joining(", "));
Run Code Online (Sandbox Code Playgroud)
这个想法是首先将每个字符串转换为正确引用的表示,然后加入它们。
您必须自己决定使用哪个转义函数。以防万一你生成一个 CSV 文件,你真的应该使用一些CsvWriter类。