Підрядковий метод VB.NET із ПРИКЛАДОМ

⚡ Розумний підсумок

Підрядок VB.Net extracts частину рядка, вказуючи початковий індекс та необов'язкову довжину. Метод належить до класу String, рахує символи з нуля та повертає абсолютно новий рядок без зміни оригіналу.

  • 🔢 Індекс, що базується на нулі: Метод Substring рахує символи, починаючи з індексу 0, тому перша літера рядка String знаходиться в нульовій позиції.
  • ☑️ Два перевантаження: Передача одного аргументу повертає все, починаючи з цього індексу, тоді як два аргументи повертають фіксовану кількість символів.
  • ✂️ Extracт за позицією: Поєднайте Substring з IndexOf або LastIndexOf, щоб захопити текст до або після певного символу.
  • ⚠️ Безпечне індексування: Від'ємний або позадіапазонний індекс викликає виняток ArgumentOutOfRangeException, тому перевірте значення перед викликом методу.
  • 🔤 Незмінний результат: Підрядок повертає новий рядок (Substring) та залишає вихідний рядок незмінним, що відповідає незмінності рядків .NET.
  • 🤖 Допомога AI: GitHub Copilot та IntelliCode У Visual Studio 2026 пропонувати правильні виклики підрядків та позначати індекси поза діапазоном під час введення тексту.

Підрядок VB.Net

Що таке підрядок?

Функція Substring використовується для отримання частини заданого рядка. Цей метод визначено в класі String. Microsoft VB.NetВам потрібно вказати початковий індекс, з якого буде вираховуватися рядок.tracТед. Рядок буде вимкненоtracз цього індексу до вказаної вами довжини.

Перед колишнімtracОбробка тексту допомагає зрозуміти синтаксис, який очікує метод Substring.

Синтаксис підрядка

Функція приймає два аргументи, як показано в такому синтаксисі:

Public Function Substring(ByVal start_Index As Integer, ByVal sub_length As Integer) As String

Тут,

  • Ключове слово ByVal позначає передачу за значенням, що є механізмом передачі аргументів функціям.
  • Початковий_індекс – це індекс, з якого буде отримано підрядок.
  • sub_length позначає довжину, до якої рядок буде скопійовано з початкового індексу (start_Index). Ця довжина вимірюється кількістю символів. Функція поверне extracпідрядок ted.

Початковий індекс починається з нуля, тому перший символ рядка знаходиться в позиції 0, а не в позиції 1.

З визначеним синтаксисом, наступні приклади показують роботу методу Substring всередині консольної програми.

прикладів

Крок 1) Створіть нову консольну програму.

Крок 2) Додайте до нього наступний код:

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

Крок 3) Натисніть кнопку «Пуск» на панелі інструментів, щоб виконати код. Ви повинні отримати такий результат:

Приклад виводу підрядка VB.Net

Ми використали такий код:

Приклад коду підрядка VB.Net

Пояснення Code:

  1. Створення модуля з іменем Module1.
  2. Запуск основної підпроцедури.
  3. Визначення рядкової змінної з іменем st та присвоєння їй значення Guru99 до цього.
  4. Визначення рядкової змінної з іменем 'subst' як підрядка рядка 'st' з індексом 0 та довжиною 4 символи.
  5. Друк деякого тексту та наведеного вище підрядка на консолі.
  6. Призупинення вікна консолі на деякий час в очікуванні дії користувача, щоб закрити його.
  7. Кінець основної підпроцедури.
  8. Кінець модуля.

Один Аргумент

Що, якщо ми передамо функції тільки один аргумент? Функція скопіює всі дані в рядку, який починається з цього індексу. Відбувається те, що функція Substring внутрішньо копіює всі рядкові дані за цим індексом, а також ті, що слідують за цим індексом. Наприклад:

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

Натисніть кнопку Пуск, щоб запустити код. Він повинен повернути наступне:

Підрядок VB.Net з одним аргументом

Функція Substring повернула 99. Ми передали функції параметр 4, тобто вона почне виконувати extract – підрядок від символу з індексом 4 до кінця рядка. 9 – це символ з індексом 4 рядка. Guru99, звідси й колишнійtracпочалося там.

Окрім обрізання з одного індексу, метод Substring також може обробляти символи в середині рядка.

Середні персонажі

Ми також можемо отримати середні символи рядка, про який йде мова. У цьому випадку нам потрібно лише надати початковий індекс і потрібну довжину рядка. У наступному прикладі ми отримуємо підрядок зазначеного рядка з індексу 2, і рядок матиме довжину 2 символи:

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

Натисніть кнопку Пуск на панелі інструментів, щоб запустити код. Ви отримаєте такий результат:

Середні символи підрядка VB.Net

У наведеному вище прикладі функція Substring повернула ru. Ми передали функції параметри (2, 2). Перші 2 вказують функції розпочати extracпідрядка з індексу 2, тоді як другий 2 вказує функції повернути підрядок довжиною лише 2 символи. Це означає, що extracВизначення підрядка повинно починатися з елемента, розташованого за індексом 2 рядка Guru99, що є r. Оскільки повернутий підрядок повинен мати довжину лише 2 символи, extracція не пройде далі 'u', тому поверне 'ru'.

Один символ

Ми можемо використовувати функцію Substring, щоб отримати один символ із рядка. У такому випадку вам необхідно зробити розподіл, але доступ до символу можна отримати безпосередньо. Це трохи швидше. Наступний приклад демонструє два способи, за допомогою яких ми можемо досягти цього:

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

Натисніть кнопку Пуск, щоб запустити код. Ви отримаєте такий результат:

Вивід одного символу підрядка VB.Net

Ми використали такий код:

Односимвольний код підрядка VB.Net

Пояснення Code:

  1. Створення модуля з іменем Module1.
  2. Запуск основної підпроцедури.
  3. Визначення рядкової змінної з іменем st та присвоєння їй значення Guru99 до цього.
  4. Визначення рядкової змінної з іменем mid1 і отримання символу з індексом 1 String st. Цей символ буде присвоєно змінній mid1.
  5. Друк наведеного вище символу на консолі.
  6. Визначення рядкової змінної з назвою mid2 та отримання символу з індексом 1 довжиною 1 із String st. Довжина 1 означає, що він повертатиме той самий символ у початковому індексі. Підрахунок починається з початкового індексу, який ви вказуєте. Цей символ буде присвоєно змінній mid2.
  7. Друк наведеного вище символу на консолі.
  8. Призупинення вікна консолі на деякий час в очікуванні дії користувача, щоб закрити його.
  9. Кінець основної підпроцедури.
  10. Кінець модуля.

Як тільки ти почуватимешся комфортно, колишній/колишняtracпідрядків, варто знати, як обробляти помилки, які може викликати цей метод.

Поширені помилки підрядків та як їх уникнути

Метод Substring суворо ставиться до значень, які ви йому передаєте. Коли аргумент виходить за межі рядка (String), VB.Net викидає виняток ArgumentOutOfRangeException та зупиняє програму під час виконання. Розуміння правил допоможе вам уникнути цієї поширеної помилки.

Метод викликає виняток у трьох ситуаціях:

  • Початковий_індекс – це від’ємне число.
  • Початковий_індекс (start_Index) перевищує довжину рядка (String).
  • Сума точок start_Index та sub_length за кінцем рядка.

Частою помилкою є використання результату функції IndexOf без попередньої перевірки. Коли IndexOf не знаходить символ, вона повертає -1, а передача -1 до Substring запускає виняток. Наступний код запобігає цьому:

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

Перевірка індексу перед викликом забезпечує безперебійну роботу вашої програми, навіть якщо вхідний рядок не містить очікуваного символу.

Отримання підрядка до або після символу

Поширеним завданням є колишнєtracрозділення тексту, що з'являється перед або після певного символу, наприклад, розділення адреси електронної пошти на знак @. VB.Net не надає спеціальної функції для цього, але ви можете поєднати IndexOf з Substring, щоб досягти цього.

Текст перед символом: викликати IndexOf, щоб знайти символ, а потім передавати цей індекс як довжину до 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

Код виводить guru99, частину рядка, що знаходиться перед знаком @.

Текст після символу: додайте 1 до індексу та дозвольте підрядку виконуватися до кінця рядка:

Dim domainPart As String = email.Substring(position + 1)
Console.WriteLine(domainPart)

Це повертає example.com. Якщо символ з'являється більше одного разу, використовуйте LastIndexOf замість IndexOf, щоб почати з останнього входження, а не з першого.

Підрядок проти функцій Left, Right та Mid

Visual Basic успадковує три застарілі рядкові функції від попередніх версій: Left, Right та Mid. Вони знаходяться в MicrosoftПростір імен .VisualBasic може здаватися більш знайомим розробникам, які перейшли з класичного VB.

  • Ліворуч(рядок, n) повертає перші n символів рядка.
  • Праворуч(рядок, n) повертає останні n символів рядка.
  • Середина(рядок, початок, довжина) повертає частину з початкової позиції, подібно до підрядка.

Ключова відмінність полягає в тому, як вони підраховують позиції. Функція Mid базується на одиниці, тому перший символ знаходиться в позиції 1, тоді як метод Substring базується на нулі та починає підрахунок з 0. Substring – це стандартний підхід .NET, який поводиться однаково в кожній мові .NET, тому його рекомендується використовувати для нового коду. Зарезервуйте Left, Right та Mid для підтримки старих проектів Visual Basic.

Поширені запитання

Так. Метод Substring базується на нулі, тому перший символ рядка має індекс 0, другий – індекс 1 тощо. Відлік від нуля важливий під час обчислення початкової позиції.

Ні. Рядки у VB.Net незмінні, тому метод Substring ніколи не змінює оригінальний рядок. Він повертає абсолютно новий рядок, який містить extracсимволи ted, тоді як вихідний рядок зберігає своє початкове значення незмінним.

Підрядок extracts одну безперервну частину рядка, використовуючи індекс та довжину. розщеплений Розбиває рядок (String) на масив менших рядків скрізь, де є роздільник, такий як кома або пробіл. Використовуйте Split для списків і Substring для зрізів.

Передавання довжини 0 повертає порожній рядок (“”), а не Nothing. Виклик є коректним і не викликає винятку, за умови, що початковий індекс все ще знаходиться в межах рядка.

Метод Substring зберігає вказану вами частину рядка та відкидає решту. Метод Remove робить протилежне: він видаляє символи, починаючи з заданого індексу, та повертає рядок, що залишився. Це взаємодоповнюючі операції.

Так. Пробіли, табуляція та розділові знаки враховуються як один символ, коли метод Substring обчислює початковий індекс та довжину. Кожна позиція в рядку, включаючи пробіли, враховується в рахунок, а не лише видимі літери.

Так. Копілот GitHub у Visual Studio 2026 перетворює коментар простою англійською мовою, наприклад, extracперетворення тексту перед комою в робочий виклик підрядка за допомогою IndexOf. Завжди перевіряйте згенеровані індекси, щоб переконатися, що вони залишаються в межах діапазону.

Так. Visual Studio 2026 поєднує GitHub Copilot з intelliCode щоб позначати ймовірні індекси поза діапазоном, пропонувати правильні аргументи та завершувати виклики підрядків під час введення тексту, helping Ви запобігаєте виникненню ArgumentOutOfRangeException перед запуском програми.

Підсумуйте цей пост за допомогою: