У меня есть коллекция строк, и я хотел бы преобразовать ее в коллекцию строк, если все пустые или нулевые строки удалены, а все остальные обрезаны.
Я могу сделать это в два этапа:
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]
Но есть ли способ объединения двух действий в один шаг в Гуаве?
Strings
API добавить несколько статическихFunction
иPredicate
для разумных примеров, подобных этому? Я нашел сопровождающих по адресу code.google.com/p/guava-libraries. /issues/list достаточно отзывчивы. - person Carl   schedule 25.11.2010