我需要String Joiners中的帮助,我想在字符串之前将To_date附加到字符串之后将其格式化。
public static StringJoiner inputDatesToQuery(
List<FileSubmtRetrlStatus> fileSubmtRetrlStatus) {
StringJoiner joinNames = new StringJoiner(",", "TO_DATE('", "','YYYY-MM-DD HH24:MI:SS')"); // passing comma(,) and square-brackets as delimiter
for (FileSubmtRetrlStatus status : fileSubmtRetrlStatus) {
joinNames.add(status.getFileSubRetDateTime());
}
return joinNames;
但是输出结果如下所示..
TO_DATE('2017-04-13 11:18:16,2017-04-13 11:17:44,2017-04-13 10:16:07',
'YYYY-MM-DD HH24:MI:SS')
但它应该如下......
TO_DATE('2017-04-13 11:18:16,'YYYY-MM-DD HH24:MI:SS'),
TO_DATE('2017-04-13 11:17:44,'YYYY-MM-DD HH24:MI:SS'),
TO_DATE('2017-04-13 10:16:07,'YYYY-MM-DD HH24:MI:SS')
答案 0 :(得分:2)
StringJoiner只生成一个输出字符串。其documentation中的示例代码为:
The String&#34; [George:Sally:Fred]&#34;可以如下构建:
即。它需要你StringJoiner sj = new StringJoiner(":", "[", "]");
sj.add("George").add("Sally").add("Fred");
String desiredString = sj.toString();
的所有项目,用分隔符(在你的例子中是逗号)分隔它们,当你调用add()
时,将前缀放在完整字符串的开头,后缀为at结束。
如果要使用StringJoiner,则需要为要输出的每个条目单独添加一个StringJoiner。您可能希望查看Formatter或StringBuilder。
答案 1 :(得分:0)
如果您想要输出,只需正确设置StringJoiner
:
String[] input = { "2017-04-13 11:18:16", "2017-04-13 11:17:44", "2017-04-13 10:16:07" };
StringJoiner joiner = new StringJoiner(",'YYYY-MM-DD HH24:MI:SS'),\nTO_DATE('",
"TO_DATE('",
",'YYYY-MM-DD HH24:MI:SS')");
for (String s : input)
joiner.add(s);
System.out.println(joiner.toString());
输出
TO_DATE('2017-04-13 11:18:16,'YYYY-MM-DD HH24:MI:SS'),
TO_DATE('2017-04-13 11:17:44,'YYYY-MM-DD HH24:MI:SS'),
TO_DATE('2017-04-13 10:16:07,'YYYY-MM-DD HH24:MI:SS')
或者使用Streams,例如@LouisWasserman thinks you should:
String[] input = { "2017-04-13 11:18:16", "2017-04-13 11:17:44", "2017-04-13 10:16:07" };
String joined = Arrays.stream(input)
.collect(Collectors.joining(",'YYYY-MM-DD HH24:MI:SS'),\nTO_DATE('",
"TO_DATE('",
",'YYYY-MM-DD HH24:MI:SS')"));
System.out.println(joined);
请注意,prefix
仅在第一个项之前,suffix
仅在最后一个项之后,并且{{1}应该是项目之间的整个文本。
↓delimiter
到_DATE(&#39; 2017-04-13 11:18:16 ,&#39; YYYY-MM-DD HH24:MI:SS&#39;),←prefix
TO_DATE(&#39; 2017-04-13 11:17:44,&#39; YYYY-MM-DD HH24:MI:SS&#39;),
TO_DATE(&#39; 2017-04-13 10:16:07 ,&#39; YYYY-MM-DD HH24:MI:SS&#39;)←delimiter
< / p>
<强>更新强>
对于不喜欢重复或使用换行符串的人,请执行以下操作:
suffix