0Pricing
C# Academy · Lekcja

Iterowanie po napisach

Napisy jako sekwencje char.

Iterowanie po napisach to bezpłatna lekcja C# 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 C# Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs C# Academy zawiera 4 lekcji w sumie.

Ciągi znaków są sekwencjami

Typ string jest uporządkowaną sekwencją wartości char.

Oznacza to, że można iterować po ciągu znaków i analizować po jednym znaku naraz. Iterowanie pozwala sprawdzać, zliczać lub przekształcać znaki w tekście.

string text = "Hello";
// 'H', 'e', 'l', 'l', 'o'

Właściwość Length

Każdy element typu string ma właściwość Length, która określa liczbę zawartych w nim znaków.

Właściwość Length służy do sterowania pętlami oraz określania ostatniego prawidłowego indeksu, którym zawsze jest Length - 1.

class Program
{
    static void Main()
    {
        string text = "Hello";
        System.Console.WriteLine(text.Length);
    }
}

Iterowanie za pomocą foreach

Najprostszym sposobem odwiedzenia każdego znaku jest użycie pętli foreach.

W każdej iteracji udostępnia ona jedną wartość char, bez konieczności używania indeksu. Jest to najczytelniejsze rozwiązanie, gdy pozycja znaku nie jest potrzebna.

class Program
{
    static void Main()
    {
        string text = "Hi!";
        foreach (char c in text)
            System.Console.WriteLine(c);
    }
}

Iterowanie za pomocą for i indeksu

Pętla for udostępnia indeks, który jest potrzebny, gdy znaczenie ma pozycja znaku.

Należy zwiększać indeks od 0 do Length - 1 i odczytywać każdy znak za pomocą text[i].

class Program
{
    static void Main()
    {
        string text = "Hi!";
        for (int i = 0; i < text.Length; i++)
            System.Console.WriteLine(text[i]);
    }
}

Indeksowanie zaczyna się od zera

Znaki są numerowane od 0, dlatego pierwszy znak znajduje się pod indeksem 0.

Dla wartości "Code" wyrażenie text[0] ma wartość 'C', a text[3] ma wartość 'e'. Odczytanie zbyt dużego indeksu powoduje błąd.

string text = "Code";
char first = text[0]; // 'C'
char last = text[3];  // 'e'

Zliczanie określonych znaków

Iterowanie pozwala zliczać znaki spełniające określony warunek.

Ten program zlicza samogłoski w słowie, sprawdzając każdy znak względem niewielkiego zbioru.

class Program
{
    static void Main()
    {
        string text = "banana";
        int count = 0;
        foreach (char c in text)
            if (c == 'a') count++;
        System.Console.WriteLine(count);
    }
}

Używanie metod pomocniczych char

Wewnątrz pętli można wywoływać poznane wcześniej metody pomocnicze typu char.

Można na przykład zliczać tylko cyfry w ciągu znaków, sprawdzając każdy znak za pomocą char.IsDigit.

class Program
{
    static void Main()
    {
        string text = "a1b2c3";
        int digits = 0;
        foreach (char c in text)
            if (char.IsDigit(c)) digits++;
        System.Console.WriteLine(digits);
    }
}

Tworzenie przekształconego wyniku

Można iterować i na bieżąco zbierać nowy wynik.

Ta pętla odczytuje każdy znak, zamienia go na wielką literę za pomocą char.ToUpper, a następnie go wyświetla. Oryginalny ciąg znaków nie jest zmieniany, ponieważ ciągi znaków są niezmienne.

class Program
{
    static void Main()
    {
        string text = "loud";
        foreach (char c in text)
            System.Console.Write(char.ToUpper(c));
    }
}

Ciągi znaków są niezmienne

Nie można zmienić znaku w miejscu za pomocą text[0] = 'X'; spowoduje to błąd kompilacji.

Ciągi znaków są niezmienne, co oznacza, że ich znaki nigdy się nie zmieniają. Aby uzyskać inny tekst, należy utworzyć nowy ciąg znaków zamiast modyfikować istniejący.

string text = "cat";
// text[0] = 'b'; // not allowed

Odwracanie za pomocą iterowania

Iterowanie od ostatniego indeksu w dół do 0 pozwala wyświetlać znaki w odwrotnej kolejności.

Należy rozpocząć od indeksu Length - 1 i zmniejszać go, aż osiągnie wartość 0.

class Program
{
    static void Main()
    {
        string text = "abc";
        for (int i = text.Length - 1; i >= 0; i--)
            System.Console.Write(text[i]);
    }
}

foreach a for

Należy używać foreach, gdy potrzebny jest każdy znak, ale nie jego pozycja.

Pętla for jest właściwa, gdy potrzebny jest indeks, gdy niektóre znaki mają zostać pominięte lub gdy konieczne jest iterowanie w niestandardowej kolejności, na przykład od końca. Obie pętle odwiedzają te same znaki.

Szybki test

Sprawdzenie zrozumienia iterowania po ciągach znaków.

Podsumowanie

Typ string jest sekwencją znaków, po której można iterować.

Do prostej iteracji należy używać foreach, a gdy znaczenie ma pozycja — pętli for z indeksem. Właściwość Length podaje liczbę znaków, indeksy zaczynają się od 0, a ciągi znaków są niezmienne, więc przekształcenie tekstu zawsze tworzy nowy ciąg znaków.

Często zadawane pytania

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

Tak — pełny tekst „Iterowanie po napisach” 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 C# Academy, przejdź na CoddyKit PRO. Kurs C# Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Iterowanie po napisach”?

Napisy jako sekwencje char. Ćwiczysz C# 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ąć C# Academy?

Nie wymagamy żadnego doświadczenia. C# 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 napisach”?

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 C# Academy?

Tak. Każda lekcja C# 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 char
  2. Pomocnicze metody char
  3. Iterowanie po napisach
  4. Budowanie napisów
← Powrót do C# Academy