2016-12-14 14 views
0

私は、部門番号がコンマで区切られた文字列を持っています。 私はこのデータをsql 'IN'節に入力する必要があります。java8 forEachループの条件文

最後の要素の条件チェックが必要ですが、最後の要素 の後に「カンマ」を追加しません。私はどのように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

役に立てば幸い;'。 – Tunaki

+0

stream.mapについて(dept - > dept = "'" + dept + "'、"); –

+0

@ASdi最後の要素の後にカンマを入れないようにします – sar

答えて

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'が印刷されます、あなたは `.collect(Collectors.joining( ""))と、ストリームと部分を探している、それは