J'ai une collection de chaînes et j'aimerais la convertir en une collection de chaînes où toutes étaient vides ou nulles. Les chaînes sont supprimées et toutes les autres sont supprimées.
Je peux le faire en deux étapes:
final List<String> tokens =
Lists.newArrayList(" some ", null, "stuff\t", "", " \nhere");
final Collection<String> filtered =
Collections2.filter(
Collections2.transform(tokens, new Function<String, String>(){
// This is a substitute for StringUtils.stripToEmpty()
// why doesn't Guava have stuff like that?
@Override
public String apply(final String input){
return input == null ? "" : input.trim();
}
}), new Predicate<String>(){
@Override
public boolean apply(final String input){
return !Strings.isNullOrEmpty(input);
}
});
System.out.println(filtered);
// Output, as desired: [some, stuff, here]
Mais existe-t-il une méthode goyave pour combiner les deux actions en une seule étape?