0Pricing
Java Academy · Lekcja

Iterowanie po znakach

Przetwarzanie każdego znaku w ciągu

Iterowanie po znakach to bezpłatna lekcja Java Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Java Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Java Academy zawiera 4 lekcji w sumie.

String składa się z wartości char

String to sekwencja znaków. Każdy znak znajduje się na pozycji nazywanej indeksem, zaczynającym się od 0.

W ciągu "Java" pod indeksem 0 znajduje się 'J', pod indeksem 1 — 'a' i tak dalej. Pętla pozwala odwiedzić każdy char po kolei.

String word = "Java";
// indexes: 0=J 1=a 2=v 3=a

charAt pobiera jeden znak

Metoda charAt(index) zwraca char znajdujący się na określonej pozycji w obiekcie String.

Indeksy mieszczą się w zakresie od 0 do length() - 1. Żądanie indeksu spoza tego zakresu powoduje błąd.

public class Main {
    public static void main(String[] args) {
        String word = "Java";
        System.out.println(word.charAt(0));
        System.out.println(word.charAt(3));
    }
}

Jak długa jest wartość String?

Metoda length() zwraca liczbę znaków w obiekcie String.

Dla wartości "Java" zwraca 4. Ponieważ indeksy zaczynają się od 0, ostatnim poprawnym indeksem zawsze jest length() - 1.

public class Main {
    public static void main(String[] args) {
        String word = "Hello";
        System.out.println(word.length());
    }
}

Iterowanie za pomocą indeksu

Klasyczna pętla for przeprowadza indeks od 0 do length() - 1, za każdym razem wywołując charAt.

Dzięki temu dostępne są zarówno pozycja, jak i znak, co jest przydatne, gdy indeks ma znaczenie.

public class Main {
    public static void main(String[] args) {
        String word = "Java";
        for (int i = 0; i < word.length(); i++) {
            System.out.println(word.charAt(i));
        }
    }
}

Rozszerzona pętla for

Jeśli indeks nie jest potrzebny, należy przekonwertować String na tablicę char za pomocą toCharArray() i użyć pętli for-each.

Taki zapis jest czytelny: dla każdego char c w słowie wykonaj określoną operację.

public class Main {
    public static void main(String[] args) {
        String word = "Java";
        for (char c : word.toCharArray()) {
            System.out.println(c);
        }
    }
}

Wyświetlanie w jednym wierszu

Należy użyć System.out.print zamiast println, aby zachować znaki w tym samym wierszu.

Jest to przydatne podczas odtwarzania lub przekształcania tekstu znak po znaku.

public class Main {
    public static void main(String[] args) {
        String word = "Java";
        for (char c : word.toCharArray()) {
            System.out.print(c);
        }
        System.out.println();
    }
}

Przekształcanie każdego char

Wewnątrz pętli można zmienić każdy char przed jego użyciem. W tym przykładzie każda litera jest zamieniana na wielką podczas przetwarzania.

Tworzymy nowy String, ponieważ oryginalnego String nie można modyfikować — Stringi są niemodyfikowalne.

public class Main {
    public static void main(String[] args) {
        String word = "java";
        String result = "";
        for (char c : word.toCharArray()) {
            result += Character.toUpperCase(c);
        }
        System.out.println(result);
    }
}

Iterowanie wstecz

Aby odwrócić String, należy iterować za pomocą charAt od ostatniego indeksu do 0.

Wartość i należy ustawić na length() - 1 i zmniejszać ją aż do osiągnięcia 0.

public class Main {
    public static void main(String[] args) {
        String word = "Java";
        for (int i = word.length() - 1; i >= 0; i--) {
            System.out.print(word.charAt(i));
        }
        System.out.println();
    }
}

Należy pilnować granic

Zawsze należy wykonywać pętlę, dopóki i < word.length(), a nigdy dopóki i <= word.length().

Wyjście o jeden element poza koniec powoduje wywołanie charAt z nieprawidłowym indeksem i zgłoszenie wyjątku StringIndexOutOfBoundsException.

String word = "Hi";
// valid indexes: 0 and 1 only
// charAt(2) would crash

Znajdowanie znaku

Należy iterować i porównywać każdy char za pomocą ==, aby znaleźć szukany znak. W tym przykładzie zwracamy indeks pierwszego wystąpienia 'a'.

Po jego znalezieniu przerywamy pętlę za pomocą break.

public class Main {
    public static void main(String[] args) {
        String word = "Java";
        for (int i = 0; i < word.length(); i++) {
            if (word.charAt(i) == 'a') {
                System.out.println("Found at " + i);
                break;
            }
        }
    }
}

Odczytywanie wartości String

Iterowanie po wartościach char jest podstawą zadań związanych z wyszukiwaniem, zamianą i sprawdzaniem poprawności.

Gdy trzeba dokładnie przeanalizować tekst, standardowym narzędziem jest przejście pętlą przez każdy char.

for (char c : "ab".toCharArray()) {
    System.out.println(c);
}

Szybki test

Proszę sprawdzić swoją wiedzę o iterowaniu po znakach.

Podsumowanie

Do odwiedzenia każdego char należy użyć charAt(i) w pętli indeksowej albo toCharArray() w pętli for-each.

Pętlę należy wykonywać, dopóki i < length(), aby pozostać w zakresie indeksów, oraz tworzyć nowe Stringi, ponieważ Stringi są niemodyfikowalne. Ten schemat jest podstawą wyszukiwania i przekształcania tekstu.

Często zadawane pytania

Czy lekcja „Iterowanie po znakach” jest bezpłatna?

Tak — pełny tekst „Iterowanie po znakach” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Java Academy, przejdź na CoddyKit PRO. Kurs Java Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Iterowanie po znakach”?

Przetwarzanie każdego znaku w ciągu Ćwiczysz Java Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Java Academy?

Nie wymagamy żadnego doświadczenia. Java Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Iterowanie po znakach”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Java Academy?

Tak. Każda lekcja Java Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Typ prosty char
  2. Metody pomocnicze dla znaków
  3. Iterowanie po znakach
  4. Zliczanie i filtrowanie znaków
← Powrót do Java Academy