Metoda podciągu VB.NET z PRZYKŁADEM
⚡ Inteligentne podsumowanie
Przykład podciągu VB.NettracOdczytuje fragment ciągu znaków, określając indeks początkowy i opcjonalną długość. Metoda należy do klasy String, zlicza znaki od zera i zwraca zupełnie nowy ciąg znaków bez zmiany oryginału.
Co to jest podciąg?
Funkcja Substring służy do pobierania fragmentu określonego ciągu. Ta metoda jest zdefiniowana w klasie String obiektu. Microsoft VB.Net. Musisz określić indeks początkowy, od którego będzie pochodził ciąg znaków.tracTed. Sznurek będzie extracod tego indeksu do określonej przez Ciebie długości.
Przed byłymtracPodczas czytania tekstu pomocne jest zrozumienie składni, jakiej oczekuje metoda Substring.
Składnia podciągu
Funkcja akceptuje dwa argumenty, jak pokazano w następującej składni:
Public Function Substring(ByVal start_Index As Integer, ByVal sub_length As Integer) As String
Tutaj,
- Słowo kluczowe ByVal oznacza przekazywanie wartości, które jest mechanizmem przekazywania argumentów do funkcji.
- start_Index to indeks, z którego zostanie pobrany podciąg.
- „sub_length” oznacza długość, do której ciąg zostanie skopiowany z indeksu start_Index. Długość ta jest mierzona liczbą znaków. Funkcja zwróci wartość ex.tracpodciąg ted.
Indeks początkowy zaczyna się od zera, więc pierwszy znak ciągu znajduje się na pozycji 0, a nie 1.
Po zdefiniowaniu składni poniższe przykłady pokazują metodę Substring w działaniu w aplikacji konsolowej.
Przykłady
Krok 1) Utwórz nową aplikację konsolową.
Krok 2) Dodaj do niego następujący kod:
Module Module1 Sub Main() Dim st As String = "Guru99" Dim subst As String = st.Substring(0, 4) Console.WriteLine("The substring is: {0}", subst) Console.ReadKey() End Sub End Module
Krok 3) Kliknij przycisk Start na pasku narzędzi, aby wykonać kod. Powinieneś otrzymać następujący wynik:
Użyliśmy następującego kodu:
Wyjaśnienie Code:
- Tworzenie modułu o nazwie Module1.
- Rozpoczęcie głównej podprocedury.
- Zdefiniowanie zmiennej łańcuchowej o nazwie st i przypisanie jej wartości Guru99 do tego.
- Zdefiniowanie zmiennej łańcuchowej o nazwie „subst” jako podłańcucha łańcucha „st” o indeksie 0 i długości 4 znaków.
- Drukowanie tekstu i powyższego podciągu na konsoli.
- Wstrzymanie okna konsoli na chwilę i oczekiwanie, aż użytkownik podejmie działanie w celu jego zamknięcia.
- Koniec głównego podprocedury.
- Koniec modułu.
Jeden argument
A co jeśli przekażemy do funkcji tylko jeden argument? Funkcja skopiuje wszystkie dane w ciągu znaków rozpoczynającym się od tego indeksu. Dzieje się tak, że funkcja Substring wewnętrznie kopiuje wszystkie dane ciągu znaków w tym indeksie, a także te, które następuje po tym indeksie. Na przykład:
Module Module1 Sub Main() Dim st As String = "Guru99" Dim subst As String = st.Substring(4) Console.WriteLine("The substring is: {0}", subst) Console.ReadKey() End Sub End Module
Kliknij przycisk Start, aby uruchomić kod. Powinien on zwrócić następujące informacje:
Funkcja Substring zwróciła 99. Przekazaliśmy parametr 4 do funkcji, co oznacza, że rozpocznie ona wykonywanietracpodciąg od znaku o indeksie 4 do końca ciągu. 9 to znak o indeksie 4 ciągu Guru99, stąd extractam się zaczęło.
Oprócz przycinania według pojedynczego indeksu, metoda Substring może również celować w znaki znajdujące się w środku ciągu.
Środkowe Postacie
Możliwe jest również uzyskanie środkowych znaków String, o którym mowa. W tym przypadku musimy jedynie podać indeks początkowy i długość String, której potrzebujemy. W poniższym przykładzie otrzymujemy podciąg określonego String z indeksu 2, a String będzie miał długość 2 znaków:
Module Module1 Sub Main() Dim st As String = "Guru99" Dim subst As String = st.Substring(2, 2) Console.WriteLine("The substring is: {0}", subst) Console.ReadKey() End Sub End Module
Kliknij przycisk Start na pasku narzędzi, aby uruchomić kod. Otrzymasz następujący wynik:
W powyższym przykładzie funkcja Substring zwróciła wartość ru. Przekazaliśmy do funkcji parametry (2, 2). Pierwsze 2 instruuje funkcję, aby rozpoczęła extracpodciągu o indeksie 2, podczas gdy drugi o indeksie 2 instruuje funkcję, aby zwróciła podciąg o długości tylko 2 znaków. Oznacza to, żetraccja podciągu powinna zaczynać się od elementu znajdującego się na indeksie 2 ciągu Guru99, czyli r. Ponieważ zwrócony podciąg powinien mieć długość tylko 2 znaków, extraccja nie przejdzie poza 'u', stąd zwrócono 'ru.'
Jeden Char
Możemy użyć funkcji Substring, aby uzyskać pojedynczy znak z ciągu. W takim przypadku konieczne jest dokonanie alokacji, ale do znaku można uzyskać dostęp bezpośrednio. Jest to nieco szybsze. Poniższy przykład pokazuje dwa sposoby, dzięki którym możemy to osiągnąć:
Module Module1 Sub Main() Dim st As String = "Guru99" Dim mid1 As Char = st(1) Console.WriteLine(mid1) Dim mid2 As String = st.Substring(1, 1) Console.WriteLine(mid2) Console.ReadKey() End Sub End Module
Kliknij przycisk Start, aby uruchomić kod. Otrzymasz następujący wynik:
Użyliśmy następującego kodu:
Wyjaśnienie Code:
- Tworzenie modułu o nazwie Module1.
- Rozpoczęcie głównej podprocedury.
- Zdefiniowanie zmiennej łańcuchowej o nazwie st i przypisanie jej wartości Guru99 do tego.
- Zdefiniowanie zmiennej łańcuchowej o nazwie mid1 i pobranie znaku o indeksie 1 String st. Znak ten zostanie przypisany do zmiennej mid1.
- Drukowanie powyższego znaku na konsoli.
- Zdefiniowanie zmiennej łańcuchowej o nazwie mid2 i pobranie znaku o indeksie 1 o długości 1 z String st. Długość 1 oznacza, że zwróci ten sam znak w indeksie początkowym. Zliczanie rozpoczyna się od określonego indeksu początkowego. Znak ten zostanie przypisany do zmiennej mid2.
- Drukowanie powyższego znaku na konsoli.
- Wstrzymanie okna konsoli na chwilę i oczekiwanie, aż użytkownik podejmie działanie w celu jego zamknięcia.
- Koniec głównego podprocedury.
- Koniec modułu.
Gdy już poczujesz się komfortowo, np.tracTworząc podciągi, warto wiedzieć, jak radzić sobie z błędami, które może wygenerować ta metoda.
Typowe błędy podciągów i jak ich unikać
Metoda Substring ściśle przestrzega przekazywanych do niej wartości. Gdy argument wykracza poza granice ciągu, VB.Net zgłasza wyjątek ArgumentOutOfRangeException i zatrzymuje program w czasie wykonywania. Zrozumienie tych reguł pomoże uniknąć tego częstego błędu.
Metoda ta zgłasza wyjątek w trzech sytuacjach:
- start_Index jest liczbą ujemną.
- Wartość start_Index jest większa niż długość ciągu.
- Suma punktów start_Index i sub_length wykracza poza koniec ciągu.
Częstym błędem jest używanie wyniku funkcji IndexOf bez wcześniejszego sprawdzenia. Gdy IndexOf nie znajdzie znaku, zwraca -1, a przekazanie -1 do Substring powoduje wygenerowanie wyjątku. Poniższy kod zapobiega temu problemowi:
Module Module1 Sub Main() Dim st As String = "Guru99" Dim pos As Integer = st.IndexOf("9") If pos >= 0 Then Dim subst As String = st.Substring(pos) Console.WriteLine(subst) Else Console.WriteLine("Character not found") End If Console.ReadKey() End Sub End Module
Sprawdzenie indeksu przed wywołaniem pozwala na płynne działanie aplikacji, nawet jeśli wejściowy ciąg znaków nie zawiera oczekiwanego znaku.
Pobieranie podciągu przed lub po znaku
Częstym zadaniem jest np.tracDodawanie tekstu przed lub po określonym znaku, np. rozdzielenie adresu e-mail znakiem @. VB.Net nie oferuje dedykowanej funkcji do tego celu, ale można połączyć IndexOf z Substring, aby to osiągnąć.
Tekst przed znakiem: wywołaj IndexOf, aby zlokalizować znak, a następnie przekaż ten indeks jako długość do Substring:
Module Module1 Sub Main() Dim email As String = "guru99@example.com" Dim position As Integer = email.IndexOf("@") Dim namePart As String = email.Substring(0, position) Console.WriteLine(namePart) Console.ReadKey() End Sub End Module
Kod wyświetla guru99, część ciągu znajdującą się przed znakiem @.
Tekst po znaku: dodaj 1 do indeksu i pozwól Substringowi dotrzeć do końca Stringa:
Dim domainPart As String = email.Substring(position + 1) Console.WriteLine(domainPart)
Zwraca example.com. Jeśli znak pojawia się więcej niż raz, użyj LastIndexOf zamiast IndexOf, aby zacząć od ostatniego wystąpienia, a nie od pierwszego.
Funkcje podciągowe a funkcje lewe, prawe i środkowe
Visual Basic dziedziczy trzy starsze funkcje łańcuchowe z poprzednich wersji: Left, Right i Mid. Znajdują się one w MicrosoftPrzestrzeń nazw .VisualBasic i może wydawać się bardziej znajoma programistom, którzy przeszli z klasycznego języka VB.
- Lewo(ciąg, n) zwraca pierwsze n znaków ciągu.
- Prawo(ciąg, n) zwraca ostatnie n znaków ciągu.
- Środek(struna, początek, długość) zwraca część z pozycji początkowej, podobnie jak Substring.
Kluczową różnicą jest sposób liczenia pozycji. Funkcja Mid jest oparta na jedynce, więc pierwszy znak znajduje się na pozycji 1, podczas gdy metoda Substring jest oparta na zerze i rozpoczyna liczenie od 0. Substring to standardowe podejście .NET i zachowuje się tak samo w każdym języku .NET, dlatego jest zalecanym wyborem dla nowego kodu. Zachowaj Left, Right i Mid do obsługi starszych projektów Visual Basic.






