Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Java - ArrayList - Stream - Jak přefiltrovat pouze čísla a String?

Použít regulární výrazy. To mě nenapadlo.

Jenže, tohle lze použít u řetězce. U něho však nelze zjistit, jestli byl původně String. A to je ten problém.

Díky tomu není možné použít druhý filtr pouze pro nonnull a přidat třetí filtr za mapování na řetězec.

Odfiltrovat String, ještě před mapováním na řetězec, taky nelze. Nelze mu říct, že nesmí být null, ale "může" být String. A i kdyby to šlo, třetí filtr by stejně bral, že to není číslo a vyhodil ven.

Jediné řešení, které mě napadlo, je

.filter(object -> Objects.nonNull(object) && (object instanceof String || object.toString().matches("-?\\d+")))

Jenže, NetBeans hlásí WARNING NullPointer Dereference a musím to dvakrát převést na řetězec, což není vůbec optimální.

Jak by jste to, prosím Vás, nejlépe upravil?

Díky

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny