Строковые функции (Visual Basic)

ОСНОВЫ РАБОТЫ СО СТРОКАМИ В VISUAL BASIC

Тип данных String является последовательностью символов, каждый из которых, в свою очередь, является экземпляром типа данных Char. В этом разделе рассмотрены базовые понятия строк в Visual Basic.

Dim MyString As StringMyString = "This is an example of the String data type"

Любой текст, который присваивается переменной типа String, должен быть заключен в кавычки (""). Это означает, что кавычки в пределах строки не могут быть представлены кавычками.

В следующем примере демонстрируется, как правильно включать в строку кавычки:

' The value of myString is: He said, "Look at this example!"myString = "He said, ""Look at this example!"""

В примере двойные кавычки перед словом Look становятся одной кавычкой в строке. Тройные кавычки в конце предложения представляют собой одинарную кавычку и символ окончания строки.

СИМВОЛЫ В СТРОКАХ

Строку можно представить как последовательность значений типа Char, кроме того, тип String имеет встроенные функции, которые позволяют манипулировать строками подобно массивам. Как и все массивы в.NET Framework, они являются массивами, в которых индексация ведется от нуля. Можно обратиться к определенному символу в строке с помощью свойства Chars, которое предоставляет механизм доступа к символу по занимаемой им позиции в строке. Например:

Dim myString As String = "ABCDE"Dim myChar As Char' The value of myChar is "D".myChar = myString.Chars(3)

В приведенном выше примере свойство строки Chars возвращает четвертый символ в строке, D, и присваивает его переменной myChar. Размер строки можно получить, используя свойство Length. Если требуется выполнить несколько манипуляций со строкой, характерных для массивов, можно преобразовать ее в массив экземпляров Char, используя функцию строки ToCharArray. Например:

Dim myString As String = "abcdefghijklmnop"Dim myArray As Char() = myString.ToCharArray

Переменная myArray теперь содержит массив значений Char, каждый из которых представляет символ из myString.

В отличие от других основных типов, тип String является ссылочным. Когда в функцию или подпрограмму в качестве аргумента передается ссылочный тип данных, на самом деле передается ссылка на адрес в памяти, по которому расположены данные, а не фактическое значение строки. Точно так же в предыдущем примере имя переменной остается без изменений, но оно указывает на другой экземпляр класса String, которому присвоено новое значение.

Смена регистра

При написании приложения, которое поддерживает данные, вводимые пользователем, неизвестно, какой регистр будет использовать пользователь для ввода данных. Поскольку методы, которые сравнивают строки и знаки, зависят от регистра, необходимо преобразовать регистр строк, введенных пользователями, перед их сравнением в значения констант. Регистр строки меняется легко. В следующей таблице описаны два метода изменения регистра. Для каждого метода имеются перегруженные варианты, учитывающие язык и региональные параметры.

Название метода Применение
String.ToUpper Преобразовывает регистр всех символов строки к верхнему регистру.
String.ToLower Преобразовывает регистр всех символов строки к нижнему регистру.
Dim MyString As String = "Hello World!"Console.WriteLine(MyString.ToUpper())' This example displays the following output:'  HELLO WORLD!

Сокращение и удаление знаков

При разборе предложения на отдельные слова может оказаться, что некоторые слова на обоих концах содержат пробелы. В этом случае для удаления ряда пропусков или других знаков из указанного места строки используются методы сокращения из класса System.String. В следующей таблице представлены доступные методы сокращения.

Название метода Применение
String.Trim () Удаление пробелов из начала и конца строки.
String.TrimEnd () Удаление знаков, указанных в массиве знаков, из конца строки.
String.TrimStart () Удаление знаков, указанных в массиве знаков, из начала строки.
String.Remove () Удаление указанного числа знаков из указанной позиции индекса в строке.
Метод String.Remove удаляет указанное число знаков, начиная с указанного места в существующей строке. В этом методе предполагается, что индексация начинается с нуля. MyString.Remove(5,10)Dim MyString As String = "Hello, World!"Dim MyChar() As Char = {"r","o","W","l","d","!"," "}Dim NewString As String = MyString.TrimEnd(MyChar)Console.WriteLine(NewString)

В следующей таблице перечислено несколько полезных методов, которые возвращают строковые объекты.

Название метода Применение
String.Format Создание форматированной строки из набора объектов ввода.
String.Concat Создание строк из двух и более строк.
String.Join Создание новой строки с помощью объединения массива строк.
String.Insert Создание новой строки с помощью вставки строки в указанную позицию существующей строки.
String.CopyTo Копирование указанных знаков в строке в указанную позицию в массиве знаков.

Format

Метод String.Format используется для создания форматированных строк и соединения строк, представляющих несколько объектов. Этот метод автоматически преобразует в строку любой переданный объект. Например, если приложению необходимо отобразить для пользователя значение Int32 и значение DateTime, легко создается строка для представления этих значений с помощью метода Format.

В следующем примере метод Format используется для создания строки, содержащей целочисленную переменную.

Dim numberOfFleas As Integer = 12Dim miscInfo As String = String.Format("Your dog has {0} fleas. " & _                                  "It is time to get a flea collar. " & _                                        "The current universal date is: {1:u}.", _                                        numberOfFleas, Date.Now)Console.WriteLine(miscInfo)

В этом примере значение DateTime.Now отображает текущие дату и время в соответствии с языком и региональными параметрами, связанными с текущим потоком.

Concat

Метод String.Concat используется для простого создания нового объекта строки из двух или более существующих объектов. Он позволяет использовать независимый от языка способ сцепления строк. Этот метод принимает любой класс, производный от System.Object. В следующем примере создается строка из двух существующих объектов строки и знака разделения.

Dim helloString1 As String = "Hello"Dim helloString2 As String = "World!"Console.WriteLine(String.Concat(helloString1, " "c, helloString2))' The example displays the following output:' Hello World!

Join

Метод String.Join создает новую строку из массива строк и разделительной строки. Этот метод полезен в случае необходимости сцепления нескольких строк и создания списка, отделенного, например, запятой.

В следующем примере используется пробел для привязки массива строк.

Dim words() As String = {"Hello", "and", "welcome", "to", "my", "world!"}Console.WriteLine(String.Join(" ", words))' The example displays the following output:' Hello and welcome to my world!

Атрибут Insert

Метод String.Insert создает новую строку с помощью вставки строки в указанную позицию другой строки. Этот метод использует индекс с отсчетом от нуля. В следующем примере строка вставляется в пятую позицию индекса MyString, и создается новая строка с этим значением.

Dim sentence As String = "Once a time."  Console.WriteLine(sentence.Insert(4, " upon")) ' The example displays the following output: ' Once upon a time.

CopyTo

Метод String.CopyTo копирует часть строки в массив знаков. Можно указать начальный индекс строки и число копируемых знаков. Для копирования этим методом необходимы исходный индекс, массив знаков, индекс назначения и число знаков. Все индексы отсчитываются от нуля.

В следующем примере метод CopyTo используется для копирования знаков слова "Hello" из объекта строки в первую позицию индекса массива знаков.

Dim greeting As String = "Hello World!"Dim charArray() As Char = {"W"c, "h"c, "e"c, "r"c, "e"c}Console.WriteLine("The original character array: {0}", New String(charArray))greeting.CopyTo(0, charArray,0,5)Console.WriteLine("The new character array: {0}", New String(charArray))' The example displays the following output:'  The original character array: Where'  The new character array: Hello ЗАДАНИЕ Задача № 1. На форме разместить поля для ввода Имени, Фамилии и Отчества пользователя. После ввода данных, по нажатию на кнопку выдать сообщение «Уважаемый ФИО Вы наблюдаете работу программы по обработке срок)))»

Задача № 2. Написать программу, запрашивающую текст, и выводящую на экран первое, последнее слово и количество слов в тексте с использованием CheckBox ()

Задача № 3. На форме разместить поле для ввода пароля с целью регистрации. Правильный пароль запросить InputBox-ом и поместить в переменную строкового типа. Организовать проверку введенного пароля и выдачу сообщения в диалоговом окне: «Пароль введен не правильно» (не более 3 раз), «Вы так и не вспомнили пароль», «Пароль введен правильно». Пароль не должен учитывать регистр, т.е. – Мама, маМа, Мама, мама – неразличимы.

Задача № 4. Дана строка, содержащая по крайней мере один символ пробела. Вывести подстроку, расположенную между первым и вторым пробелом исходной строки. Если строка содержит только один пробел, то вывести пустую строку.

Задача № 5. Составить программу, которая выводит на экран слово, удваивая каждую букву исходного слова.

 

 

Строковые функции (Visual Basic)

В следующей таблице перечислены имеющиеся в Visual Basic функции поиска в строках и работы с ними.

Метод  Описание
Asc, AscW Возвращает значение типа Integer, представляющее код знака, соответствующий знаку.
Chr, ChrW Возвращает знак, связанный с указанным кодом знака.
Filter Возвращает массив (с индексацией от нуля), который содержит подмножество массива типа String, выделяемое согласно указанным условиям фильтрации.
Format Возвращает строку, отформатированную в соответствии с инструкциями, содержащимися в формате выражения String.
FormatCurrency Возвращает выражение в формате денежной единицы с использованием символа денежной единицы, определенного в системной панели управления.
FormatDateTime Возвращает строковое выражение, представляющее значение даты и времени.
FormatNumber Возвращает выражение в формате числа.
FormatPercent Возвращает выражение в формате процента (т. е. с коэффициентом 100), в конец которого добавлен знак %.
InStr Возвращает целое число, указывающее начальную позицию первого вхождения одной строки в другую.
InStrRev Возвращает позицию первого вхождения одной строки в другую, начиная с правого конца строки.
Join Возвращает строку, образуемую путем соединения нескольких подстрок, содержащихся в массиве.
LCase Возвращает строку или символ, преобразованные в нижний регистр.
Left Возвращает строку, содержащую указанное число знаков с левой стороны строки.
Len Возвращает целое число, показывающее число знаков в строке.
LSet Возвращает выровненную по левому краю строку запрашиваемой длины, содержащую указанную строку.
LTrim Возвращает строку, содержащую копию указанной строки без пробелов в начале.
Mid Возвращает строку, содержащую указанное число знаков строки.
Replace Возвращает строку, в которой указанная подстрока заданное число раз заменена другой подстрокой.
Right Возвращает строку, содержащую указанное число знаков с правой стороны строки.
RSet Возвращает выровненную по правому краю строку, содержащую указанную строку, настроенную под указанную длину.
RTrim Возвращает строку, содержащую копию указанной строки без пробелов в конце.
Space Возвращает строку, состоящую из указанного числа пробелов.
Split Возвращает одномерный массив (с индексацией от нуля), содержащий указанное число подстрок.
StrComp Возвращает -1, 0 или 1 в зависимости от результата сравнения строк.
StrConv Возвращает строку, преобразованную как указано.
StrDup Возвращает строку или объект, состоящие из указанного знака, повторенного определенное количество раз.
StrReverse Возвращает строку, содержащую те же знаки, что и в заданной строке, но в противоположном порядке.
Trim Возвращает строку, содержащую копию указанной строки без пробелов в начале и конце.
UCase Возвращает строку или знак, содержащий указанную строку, преобразованную в верхний регистр.

С помощью оператора Option Compare можно указать, следует ли выполнять сравнение строк с использованием порядка сортировки текста без учета регистра, определяемого языковым стандартом системы (Text), или же вести сортировку по внутренним двоичным представлениям знаков (Binary). По умолчанию задан метод сравнения текста Binary.


 



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: