learn use c stringbuilder class
Ten samouczek wyjaśnia szczegółowo klasę StringBuilder języka C # i jej metody, takie jak Append, Clear, Remove, Insert, Replace i Equals in Detail z przykładami:
Klasa StringBuilder w języku C # współpracuje z ciągiem, gdy wymagane jest użycie powtarzających się operacji na ciągach.
Ciąg jest niezmienny, tj. Nie można go zmienić. Po utworzeniu określonego ciągu nie można go zmienić. Każda zmiana lub aktualizacja ciągu spowoduje utworzenie w pamięci nowego obiektu ciągu. Jak widać, takie zachowanie wpłynie negatywnie na wydajność, jeśli operacja cykliczna jest wykonywana na tym samym ciągu.
=> Sprawdź szczegółowe samouczki szkoleniowe języka C # tutaj
Klasa StringBuilder w języku C # ma na celu rozwiązanie tego problemu. Pozwala na dynamiczną alokację pamięci, tj. Może zwiększyć liczbę znaków w ciągu. Nie tworzy nowego obiektu pamięci, a raczej dynamicznie zwiększa rozmiar pamięci, aby zawierała nowe znaki.
Czego się nauczysz:
Jak zainicjować C # StringBuilder?
StringBuilder jest inicjowany podobnie jak każda inna klasa. Klasa StringBuilder znajduje się w przestrzeni nazw System. W celu utworzenia instancji tekst musi zostać zaimportowany do klasy.
Przykład inicjalizacji:
class Program { public static void Main(string() args) { StringBuilder strgBldr = new StringBuilder('Hello'); Console.WriteLine(strgBldr); Console.ReadLine(); } }
Wynik powyższego programu to:
cześć
algorytm szybkiego sortowania c ++
Metody C # StringBuilder
Klasa StringBuilder oferuje również kilka różnych metod służących do manipulacji na ciągach znaków.
# 1) Dołącz metodę
Jak sugeruje nazwa, dołącza zestaw znaków lub ciąg na końcu bieżącego Konstruktora ciągów. Jest to bardzo pomocne w poprawie wydajności, gdy na tym samym ciągu trzeba wykonać kilka konkatenacji ciągów.
Przykład:
class Program { public static void Main(string() args) { StringBuilder strgBldr = new StringBuilder('Hello'); Console.WriteLine(strgBldr); strgBldr.Append('World'); Console.WriteLine(strgBldr); Console.ReadLine(); } }
Wynik powyższego programu będzie:
cześć
Witaj świecie
W powyższym programie najpierw mieliśmy ciąg zdefiniowany przez stringBuilder. Następnie użyliśmy Append (), aby połączyć inny ciąg z poprzednim. Jeśli wykonamy linię kodu przed dołączeniem, otrzymamy na wyjściu napis „Hello”, ale po dodaniu go i wydrukowaniu wyniku wyświetli się „Hello World”, czyli poprzedni ciąg z dołączonym ciągiem.
# 2) Wyczyść metodę
Ta metoda usuwa wszystkie znaki z bieżącego StringBuilder. Jest to bardzo pomocne w scenariuszach, w których musimy uzyskać pusty ciąg lub w których musimy wyczyścić dane ze zmiennej łańcuchowej.
Przykład:
class Program { public static void Main(string() args) { StringBuilder strgBldr = new StringBuilder('Hello'); Console.WriteLine(strgBldr); strgBldr.Append('World'); Console.WriteLine(strgBldr); strgBldr.Clear(); Console.WriteLine(strgBldr); Console.ReadLine(); } }
Wynik powyższego programu to:
cześć
Witaj świecie
Kiedy wykonujemy czystą operację na StringBuilder, a następnie spróbujemy wydrukować wynikowy ciąg. Otrzymamy czarną wartość ciągu. W powyższym programie dodaliśmy wartość do StringBuilder i wydrukowaliśmy ją na konsolę.
Następnie wykonaliśmy wyraźną operację, która usunęła całą wartość z StringBuilder, a kiedy próbowaliśmy wydrukować, wypisywaliśmy pustą wartość.
# 3) Usuń metodę
Usuwanie jest podobne do usuwania, ale z niewielką różnicą. Usuwa również znaki z StringBuilder, ale robi to w danym zakresie w przeciwieństwie do clear, który usuwa wszystkie znaki obecne w StringBuilder. Remove jest używany zawsze, gdy scenariusz wymaga, aby program usunął określony zestaw znaków z ciągu zamiast całego ciągu.
Przykład:
class Program { public static void Main(string() args) { StringBuilder strgBldr = new StringBuilder('Hello'); Console.WriteLine(strgBldr); strgBldr.Append('World'); Console.WriteLine(strgBldr); strgBldr.Remove(2, 3); Console.WriteLine(strgBldr); Console.ReadLine(); } }
Wynik powyższego programu będzie:
cześć
Witaj świecie
On World
Usuń przyjmuje dwa parametry, pierwszy z nich oznacza indeks początkowy, czyli indeks znaku, od którego chcesz rozpocząć usuwanie. Drugi parametr również przyjmuje liczbę całkowitą, która oznacza długość, czyli długość znaku, z którego chcesz usunąć.
W powyższym programie podaliśmy indeks początkowy jako 2, a długość jako trzy. Zaczął więc usuwać znak z indeksu 2, tj. He’l’lo i podaliśmy długość jako trzy, więc program usunął trzy znaki z „l”, więc „l l o” zostało usunięte.
Oprogramowanie do tworzenia kopii zapasowych online dla usługodawców
# 4) Wstaw metodę
Wstawia jeden lub więcej znaków w ciągu o podanym indeksie. Pozwala również użytkownikowi określić, ile razy ciąg lub znak ma zostać wstawiony do StringBuilder. Stosowany jest w warunkach, w których znaki mają być wstawione do danego ciągu na określonej pozycji.
Przykład:
class Program { publicstaticvoid Main(string() args) { StringBuilder strgBldr = new StringBuilder('Hello World'); Console.WriteLine(strgBldr); strgBldr.Insert(2, '_insert_'); Console.WriteLine(strgBldr); Console.ReadLine(); } }
Wynik powyższego programu będzie:
Witaj świecie
He_insert_llo World
W powyższym programie metoda Insert służy do wstawiania znaków w określonym indeksie. Metoda insert akceptuje dwa parametry. Pierwszym parametrem jest liczba całkowita oznaczająca indeks, do którego mają zostać wstawione znaki. Drugi parametr akceptuje znaki, które użytkownik chce wstawić pod danym indeksem.
# 5) Zastąp metodę
Metoda replace zamienia wszystkie wystąpienia określonego ciągu w StringBuilder przez ciąg lub znak podany przez użytkownika. Zastępuje określone znaki w określonym indeksie. Może być używany w scenariuszach, w których niektóre znaki muszą zostać zastąpione inną postacią.
Przykład:
class Program { public static void Main(string() args) { StringBuilder strgBldr = new StringBuilder('Hello World'); Console.WriteLine(strgBldr); strgBldr.Replace('Hello', 'Hi'); Console.WriteLine(strgBldr); Console.ReadLine(); } }
Wynik powyższego programu to:
Witaj świecie
cześć świecie
W powyższym programie użyliśmy metody Replace, aby zamienić „Hello” na „Hi”. Metoda replace akceptuje dwa parametry, pierwszy to ciąg lub znaki, które chcesz zamienić, a drugi to łańcuch lub znak, którym chcesz go zastąpić.
# 6) Metoda równa się
Jak sama nazwa wskazuje, sprawdza, czy jeden StringBuilder jest równy innym, czy nie. Akceptuje StringBuilder jako parametr i zwraca wartość logiczną na podstawie osiągniętego warunku równości. Ta metoda jest bardzo przydatna, jeśli chcesz sprawdzić poprawność warunku równości dla dwóch StringBuilders.
Przykład:
class Program { public static void Main(string() args) { StringBuilder strgBldr1 = new StringBuilder('Hello World'); StringBuilder strgBldr2 = new StringBuilder('World'); StringBuilder strgBldr3 = new StringBuilder('Hello World'); Console.WriteLine(strgBldr1.Equals(strgBldr2)); Console.WriteLine(strgBldr1.Equals(strgBldr3)); Console.ReadLine(); } }
Wynik powyższego programu będzie:
Fałszywy
Prawdziwe
W powyższym programie pierwszy i trzeci obiekt StringBuilder są równe, czyli mają taką samą wartość. W związku z tym, gdy porównaliśmy pierwszą i trzecią równość, zwróciła ona fałszywą wartość, ale gdy zrównała pierwszą i trzecią równość, zwróciła wartość true.
Wniosek
Klasa StringBuilder w języku C # służy do zwiększania wydajności w przypadku wykonywania wielu operacji na ciągu.
Będąc niezmiennym, za każdym razem, gdy ciąg jest modyfikowany, tworzy w pamięci kolejny obiekt ciągu. StringBuilder ma na celu zmniejszenie tego.
Pozwala użytkownikowi na dokonywanie modyfikacji tego samego obiektu poprzez przydzielanie pamięci dynamicznej. Oznacza to, że w razie potrzeby może zwiększyć rozmiar pamięci, aby pomieścić więcej danych.
=> Przeczytaj przewodnik C # dla początkujących tutaj
rekomendowane lektury
- C # String Tutorial - Metody ciągów z przykładami kodu
- Co to jest testowanie porównawcze (zapoznaj się z przykładami)
- C # funkcje / metody samouczek z przykładami kodu
- Interfejs Java i samouczek klasy abstrakcyjnej z przykładami
- Wątki Java z metodami i cyklem życia
- Funkcje daty i czasu w C ++ z przykładami
- Sortowanie powłoki w C ++ z przykładami
- Lambdy w C ++ z przykładami