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=acharAt 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 crashZnajdowanie 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
- Typ prosty char
- Metody pomocnicze dla znaków
- Iterowanie po znakach
- Zliczanie i filtrowanie znaków