3

我想遍历一个数组,只有在某些条件匹配时才将字符串添加到新字符串中,然后用逗号分隔。如果我可以使用 java 8,它看起来像这样:

 StringJoiner col = new StringJoiner(",");
 StringJoiner val = new StringJoiner(",");
 //First Iteration: Create the Statement
 for(String c : columns) {
     //Your PDF has a matching formfield 
     if(pdf.hasKey(c)) {
         col.add(c);
         val.add("?");
      }
  }

但是我被困在 7. Guava 和其他一些库似乎都将数组/映射作为输入,而不是通过“添加”方法添加。

哪些 Java 7 兼容代码可以实现相同的目标?

干杯

4

2 回答 2

3

StringBuilder 可以做得很好:

StringBuilder col = new StringBuilder();
StringBuilder val = new StringBuilder();
String separator = "";
for (String c : columns) {
    if (pdf.hasKey(c)) {
        col.append(separator).append(c);
        val.append(separator).append("?");
        separator = ",";
    }
}
于 2016-03-09T18:33:54.100 回答
1

您可以使用 google guava 库的Joiner

private static String reduce(List<String> values) {
    return Joiner.on(",").skipNulls().join(values);
}
于 2017-09-04T02:11:59.740 回答