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.

  • 🔢 Indeks zerowy: Metoda Substring zlicza znaki od indeksu 0, więc pierwsza litera ciągu znajduje się na pozycji zero.
  • Dwa przeciążenia: Przekazanie jednego argumentu zwraca wszystko od podanego indeksu w górę, natomiast przekazanie dwóch argumentów zwraca stałą liczbę znaków.
  • ✂️. Extract według pozycji: Połącz Substring z IndexOf lub LastIndexOf, aby uchwycić tekst przed lub po określonym znaku.
  • ⚠️ Bezpieczne indeksowanie: Indeks ujemny lub spoza zakresu powoduje wyjątek ArgumentOutOfRangeException, dlatego przed wywołaniem metody należy sprawdzić poprawność wartości.
  • 🔤 Niezmienny wynik: Substring zwraca nowy String i pozostawia String źródłowy bez zmian, zgodnie z niezmiennością ciągów .NET.
  • 🤖 Pomoc AI: GitHub Copilot i IntelliCode w programie Visual Studio 2026 sugerują prawidłowe wywołania Substring i sygnalizują indeksy spoza zakresu podczas pisania.

Podciąg VB.Net

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:

Przykładowy wynik podciągu VB.Net

Użyliśmy następującego kodu:

Przykład kodu podciągu VB.Net

Wyjaśnienie Code:

  1. Tworzenie modułu o nazwie Module1.
  2. Rozpoczęcie głównej podprocedury.
  3. Zdefiniowanie zmiennej łańcuchowej o nazwie st i przypisanie jej wartości Guru99 do tego.
  4. Zdefiniowanie zmiennej łańcuchowej o nazwie „subst” jako podłańcucha łańcucha „st” o indeksie 0 i długości 4 znaków.
  5. Drukowanie tekstu i powyższego podciągu na konsoli.
  6. Wstrzymanie okna konsoli na chwilę i oczekiwanie, aż użytkownik podejmie działanie w celu jego zamknięcia.
  7. Koniec głównego podprocedury.
  8. 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:

Podciąg VB.Net z jednym argumentem

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:

Podciąg znaków środkowych VB.Net

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:

Wyjście pojedynczego znaku podciągu VB.Net

Użyliśmy następującego kodu:

Kod pojedynczego znaku podciągu VB.Net

Wyjaśnienie Code:

  1. Tworzenie modułu o nazwie Module1.
  2. Rozpoczęcie głównej podprocedury.
  3. Zdefiniowanie zmiennej łańcuchowej o nazwie st i przypisanie jej wartości Guru99 do tego.
  4. Zdefiniowanie zmiennej łańcuchowej o nazwie mid1 i pobranie znaku o indeksie 1 String st. Znak ten zostanie przypisany do zmiennej mid1.
  5. Drukowanie powyższego znaku na konsoli.
  6. 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.
  7. Drukowanie powyższego znaku na konsoli.
  8. Wstrzymanie okna konsoli na chwilę i oczekiwanie, aż użytkownik podejmie działanie w celu jego zamknięcia.
  9. Koniec głównego podprocedury.
  10. 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.

FAQ

Tak. Metoda Substring jest oparta na zerze, więc pierwszy znak ciągu znajduje się pod indeksem 0, drugi pod indeksem 1 itd. Liczenie od zera jest ważne przy obliczaniu pozycji początkowej.

Nie. Ciągi znaków w VB.Net są niezmienne, więc metoda Substring nigdy nie zmienia oryginalnego ciągu. Zwraca zupełnie nowy ciąg znaków, który zawiera poprzedni ciąg.tracznaków, podczas gdy źródłowy ciąg znaków zachowuje swoją oryginalną wartość bez zmian.

Podciąg np.tractworzy jedną ciągłą część ciągu znaków przy użyciu indeksu i długości. Split Rozbija ciąg na tablicę mniejszych ciągów wszędzie tam, gdzie występuje separator, taki jak przecinek lub spacja. Użyj opcji „Podziel” dla list, a „Podciąg” dla wycinków.

Przekazanie długości 0 zwraca pusty ciąg znaków („”), a nie „Nic”. Wywołanie jest prawidłowe i nie powoduje wyjątku, pod warunkiem, że indeks początkowy nadal mieści się w granicach ciągu znaków.

Metoda Substring zachowuje określoną część ciągu i usuwa resztę. Metoda Remove działa odwrotnie: usuwa znaki zaczynające się od podanego indeksu i zwraca pozostały ciąg. Są to operacje komplementarne.

Tak. Spacje, tabulatory i znaki interpunkcyjne liczą się jako jeden znak, gdy metoda Substring oblicza indeks początkowy i długość. Każda pozycja w ciągu, łącznie ze spacjami, jest liczona, a nie tylko widoczne litery.

Tak. Drugi pilot GitHub w programie Visual Studio 2026 zmienia zwykły komentarz w języku angielskim, taki jak np.tracWstawianie tekstu przed przecinkiem do działającego wywołania Substring za pomocą IndexOf. Zawsze sprawdzaj wygenerowane indeksy, aby upewnić się, że mieszczą się w zakresie.

Tak. Visual Studio 2026 łączy GitHub Copilot z inteligencjaCode aby oznaczyć indeksy prawdopodobnie poza zakresem, sugerować poprawne argumenty i kończyć wywołania podciągów podczas pisania,ping zapobiegasz wystąpieniu wyjątku ArgumentOutOfRangeException przed uruchomieniem programu.

Podsumuj ten post następująco: