java8 forEach循环中的条件语句

时间:2016-12-14 11:44:57

标签: java java-8

我有一个字符串,其中包含用逗号分隔的部门数。 我必须将这些数据提供给sql' IN'子句。

我想要对最后一个元素进行条件检查,我不想附加'逗号'后 最后一个元素我不知道如何在java 8 forEach循环中使用条件。

public String  getDeptInClauseParameters(String depts){
       StringBuilder deptsInParameter= new StringBuilder();
       Stream<String>  stream= Arrays.stream(depts.split(","));
       stream.forEach(dept ->  deptsInParameter.append("'").append(dept).append("' , "));
        return deptsInParameter.toString();
    }

1 个答案:

答案 0 :(得分:2)

您可以使用Collectors.joining(delimiter, prefix, suffix)

  • delimiter要在每个元素之间使用的分隔符
  • prefix要在联接结果的开头使用的字符序列
  • suffix要在联接结果的末尾使用的字符序列

示例: -

    String depts = "Dept1,Dept2";
    Stream<String> stream = Arrays.stream(depts.split(","));

    System.out.println(stream.collect(Collectors.joining("','", "'", "'")));

这将打印'Dept1','Dept2'作为输出,希望它有帮助