суббота, 9 апреля 2011 г.

String. Методы. Часть 3

Итак, после вчерашнего апа тИЦ предлагаю перейти к новой теме. Правда – не совсем новой, так как две статьи по ней я уже опубликовал в блоге. То есть – я опять говорю о языке программирования Visual Basic.NET и о методах класса String. Сейчас я публикую уже третью часть из целой серии статей по этой теме. Как я подсчитал, еще будет (кроме этой) две статьи по методам. Просто к каждому методы я прикладываю примеры, вот и получаются довольно объемные статьи. После методов закреплю все практическим занятием, тоже в блоге опишу все.

Пока не перешли к методам – могу посоветовать фирму ООО "Спецшана", занимается поставкой автошин. То есть, там можно купить например грузовые китайские шины - сейчас грузовички у многих людей есть, а шины к ним менять надо. Так что – можете посмотреть продукцию, пригодится.

Сегодня я рассмотрю четыре метода класса String. Это буду IndexOf, LastIndexOf, IndexOfAny и Insert. Приступим:

IndexOf, LastIndexOf:

Эти два метода находят в строке указанную подстроку. Метод IndexOf начинает поиск с начала строки, а метода LastIndexOf – с ее конца. Оба они возвращают целое число, указывающее индекс первого символа подстроки в строке (напомню, что индекс первого символа в строке равен нулю, не забывайте про этот факт).

Так как эти методы перегружены, то синтаксис их вызова может быть различен. Вот несколько различных способов выхова:

        Str.IndexOf(строка_для_поиска)
        Str.IndexOf(строка_для_поиска, стартовая_позиция)
 Str.IndexOf(строка_для_поиска, стартовая_позиция, кол-во_символов_для_просмотра)

Например, рассмотрю на конкретном примере только первый способ вызова, а остальными вы и сами разберетесь:

        Dim Str As String = "Исходная строка"
        MsgBox(Str.IndexOf("хо").ToString)
        MsgBox(Str.LastIndexOf("ро").ToString)
 MsgBox(Str.IndexOf("ис").ToString)

Результатом работы будет три сообщения: 2, 11 и -1. 2 и 11 – с этих символов начинаются найденные подстроки. А вот подстроки «ис» не было найдено. Почему? Дочитайте описание этих методов до конца – и все поймете.

Можно искать не только строки, но и символы и массивы символов. Просто нужно подать вместо «Строки_для_поиска» то, что вам нужно.

Оба метода выполняют поиск с учетом регистра и национальной кодировки. Для выполнения поиска без учета регистра надо преобразовать строку и искомую подстроку в верхний регистр (с помощью метода ToUpper).

IndexOfAny:

Метод принимает в качестве аргумента массив символов и возвращает первое вхождение в строку любого символа этого массива:

        Str.IndexOfAny(MasChars)

Тут MasChars – это массив символов. Метод IndexOfAny ищет в строке первый символ из массива. Если такой символ найден, метод возвращает его индекс в строке, а если нет – ищет второй символ. Этот процесс повторяется до тех пор, пока не будет найден в строке очередной символ массива или пока все символы не будут просмотрены. Например, если необходимо найти позицию первого разделителя в строке, необходимо вызвать метод IndexOfAny и передать ему следующий массив:

        Dim Str As String = "Исходная строка"
        Dim MasChars() As Char = {CChar(" "), CChar("."), CChar(","), CChar(";")}
        MsgBox(Str.IndexOfAny(MasChars).ToString)
        Str.IndexOfAny(MasChars)

В результате будет выведено значение 8 – это индекс первого пробела в строке (напомню еще раз, что первый символ в строке имеет индекс 0).

То же самое можно произвести и с поиском цифр (достаточно лишь передать во входной массив цифры).

Insert:

Метод инсерт вставляет один или несколько символов в указанное место строки и возвращает результирующую строку. Синтаксис следующий:

        Str.Insert(позиция, подстрока)

То есть мы должны указать, в какую позицию вставлять подстроку. Давайте посмотрим на следующий небольшой пример:

        Dim Str As String = "Исходная строка"
        MsgBox(Str.Insert(5, "ущ"))

В результате будет выведено «Исходущная строка». Все просто.

Сегодня получилась довольно объемная статья. Но – надо уже и заканчивать. Как я сказал в начале статьи – будет еще две части про методы класса String, тоже с примерами. Может быть – сегодня еще статью опубликую (но не о VB.NET).

Комментариев нет:

Отправить комментарий