Znaki String jako strumień
Przetwarzaj znaki Stringa jako pipeline strumieniowy.
Porównanie kodu
✕ Java 8
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (Character.isDigit(c)) {
process(c);
}
}
✓ Java 9+
str.chars()
.filter(Character::isDigit)
.forEach(c -> process((char) c));
Widzisz problem z tym kodem? Daj nam znać.
Dlaczego nowoczesne podejście wygrywa
Łańcuchowanie
Możesz używać filter, map i collect na strumieniach znaków.
Deklaratywność
Opisujesz co chcesz zrobić, a nie jak iterować.
Gotowość na Unicode
codePoints() poprawnie obsługuje emoji i znaki uzupełniające.
Stare podejście
Ręczna pętla
Nowoczesne podejście
chars() Stream
Od JDK
9
Poziom trudności
Początkujący
Wsparcie JDK
Znaki String jako strumień
Dostępne
Dostępne od JDK 8+ (ulepszone w 9+)
Jak to działa
String.chars() zwraca IntStream wartości znaków i umożliwia funkcyjne przetwarzanie. Dla pełnego wsparcia Unicode użyj codePoints(), które poprawnie obsługuje znaki uzupełniające.
Powiązana dokumentacja