Łańcuchy zawierają sekwencję znaków
„Witaj Świecie”
Typ string
string tekst = "Witaj Świecie"
Łańcuch jest typem referencyjnym (jest aliasem klasy System.String
)
char [] litery= { 'H', 'e', 'l', 'l','o' }; string tekst = new string(litery);
Tablice łańcuchów
string [] tekst = {"Ala", "ma", "kota"};
„Dodawanie” łańcuchów (konkatenacja) to łączenie napisów
string tekst = "Witaj"; tekst = tekst + " Świecie"; tekst += " Hura!";
Uwaga: wynikiem operacji jest nowy łańcuch.
Znaki łańcucha dostępne za pomocą operatora [index]
Pierwszy element ma indeks 0 (to jest tablica znaków)
string tekst = "kod"; tekst[2] = 't';
Zobacz: String
Metody i własności | Opis | Przykład |
---|---|---|
Chars[] | indeksowane elementy łańcucha | tekst[0] |
Length | długość łańcucha | tekst.Length |
Equals() | czy napisy takie same? | tekst.Equals(„Hello”) |
Compare() | kolejność alfabetyczna (-1, 0 , 1) | tekst.Compare(„Hello”) |
Contains() | czy zawiera łańcuch? | tekst.Contains(„kot”) |
StartsWith() , EndsWith() | czy zaczyna się/kończy się od? | tekst.StartsWith(„Ala”) |
IndexOf() | indeks początku pasującego wzorca | tekst.IndexOf(„Ala”) |
PadLeft() , PadRight() | uzupełnia napis spacjami do zadanej długości | tekst.PadLeft(25) |
Remove() | usuwa ciąg znaków od zadanej pozycji | tekst.Remove(2,5) |
Substring() | wyodrębnia ciąg znaków od zadanej pozycji | tekst.Substring(2,5) |
Replace() | zamienia fragment łańcucha | tekst.Replace(„Ala”, „Ewa”) |
ToLower() , ToUpper() | zamienia litery na małe/wielkie | tekst.ToUpper() |
Trim() , TrimEnd(), TrimStart() | usuwa znaki (spacje) z łańcucha | tekst.TrimEnd() |
Split() | dzieli łańcuch względem separatora | tekst.Split(' ') |
Join() | łaczy tablicę napisów |
Napisz program, który wczytuje kolejne linie tekstu z konsoli aż do napotkania pustej linii.
Każda kolejna linia tekstu wypisywana jest w odwrotnej kolejności a wszystki małe litery zamieniane są na wielkie.
Przykład:
Ala ma kota ATOK AM ALA
Napisz program, który wczytuje kolejne linie tekstu z konsoli aż do napotkania pustej linii.
Po zakończeniu wczytywania tekstu program wypisuje wszystkie wyrazy podanego tekstu w porządku alfabetycznym. Zakładamy, że wyrazy oddzielone są spacjami.
Przykład:
Ala ma kota. Ala kota. ma
System.StringBuilder()
StringBuilder sb = new StringBuilder(); // Dodaj łańcuch na końcu sb.Append("Witaj"); // Dodaj linię na końcu sb.AppendLine("Świecie !"); // Dodaj formatowany napis sb.AppendFormat("PI = {0:F5}", Math.PI); // Ile znaków ? Console.WriteLine("sb.Length={0}", sb.Length); // Uzyskaj gotowy łańcuch string tekst = sb.ToString(); Console.WriteLine(tekst);
Napisz program, który porówna szybkość wykonywania operacji łączenia tekstu pomiędzy operatorem dodawania (+
) i klasą StringBuilder()
.
W tym celu zbuduj napis składającyc się w wielu powtórzeń (np. 10 tysiecy) napisu „Witaj Świecie”
i wyznacz czas wykoanania algorytmu dla obu porównywanych metod.
Do wyznaczenia casu wykonania programu można wykorzystać własność ''System.DateTime.Now, która zwraca aktualny czas z dokładnością do milisekund. Ta wartość może zostać wywołana do pomiaru czasu przed i po wykonaniu algorytmu. Przedział czasu między dwoma pomiarami czasu jest strukturą typu typu TimeSpan. Struktura ta udostepnia własność TimeSpan.TotalMilliseconds zwracającą całkowitą liczbę milisekund pomiedzy pomiarami czasu.