空の文字列をList of Stringsから削除したいと思います。ここでJava 8 - 空の文字列をリストからフィルタリングすることができません
は、ストリームAPI使用して、私が試したものです:
list.stream().filter(item-> !item.isEmpty()).collect(Collectors.toList());
を、空の文字列がまだリストに存在します。私は何が欠けていますか?
空の文字列をList of Stringsから削除したいと思います。ここでJava 8 - 空の文字列をリストからフィルタリングすることができません
は、ストリームAPI使用して、私が試したものです:
list.stream().filter(item-> !item.isEmpty()).collect(Collectors.toList());
を、空の文字列がまだリストに存在します。私は何が欠けていますか?
filter()
述語に一致する要素を保持します。
list.stream().filter(item-> !item.isEmpty()).collect(Collectors.toList());
これも元のリストを変更しません。元のリストのフィルターを適用したコピーが作成されます。だから、あなたは元のリストを変更したい場合、あなたはあなたがリストから空の文字列を削除していない
list.removeIf(item -> item.isEmpty());
または単に
list.removeIf(String::isEmpty);
私は逃しました!質問に。私の問題は、私が結果を保持していないということでした。私はそのフィルタ()が元のリストを変更しますが。 – stackUnderflow
空でない文字列を削除しています(フィルタ条件を確認してください)。試してみてください:
list.stream().filter(item -> !item.isEmpty()).collect(Collectors.toList());
をそうしないと、あなたにも空白を削除していることを確認する必要がある場合があります
list.stream().filter(item -> !item.trim().isEmpty()).collect(Collectors.toList());
たぶん文字列は空白が含まれていますか? item -> item.isEmpty()
をitem -> !item.trim().isEmpty()
に置き換えてください。
あなたは結果を保持していないと思われます。結果は返されますが、元のリストは関数型プログラミングスタイルであるため変更されません。
list = list.stream().filter(item-> !item.trim().isEmpty()).collect(Collectors.toList());
を使用する必要があります
list = list.stream().filter(item-> !item.isEmpty()).collect(Collectors.toList());
を必要とする、あなたがましたそれらを検索する。フィルタ条件が間違っています。
このようにしてみてください。
List<String> collect = list.stream().filter(item -> !item.trim().isEmpty()).collect(Collectors.toList());
を使用すると、空の要素:)
を収集しているあなたはとても述語さらに
List<String> xxx = list.stream().filter(item -> !item.isEmpty()).collect(Collectors.toList());
を反転空ではないが欲しい、ストリームが変更されていません元のリストなので、
Collect(Collectrors.toList())
は述語の結果を返しています:)
あなたは例の下に従うことができ、それはあなたに役立つかもしれない
String[] firstArray = {"test1", "", "test2", "test4", "", null};
firstArray = Arrays.stream(firstArray).filter(s -> (s != null && s.length() > 0)).toArray(String[]::new);
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.5-SNAPSHOT</version>
</dependency>
import org.apache.commons.lang3.StringUtils;
//Java8 new api
strings.removeIf(StringUtils::isBlank);
//stream strings=strings.stream().filter(StringUtils::isNotBlank).collect(Collectors.toList());
は、それは '文字列:: isEmpty'ではないでしょうか? – Tschallacka
返された値をある変数に代入していますか? – ItamarG3
*空ではないアイテムは保管しないでください。あなたは空のものだけを残しています。 –