АППОИ_9_Рядки у VB.NET (String).ppt
- Количество слайдов: 18
Рядки у VB. NET (String) 1
Загальні положення 2 Клас System. String вміщує методи, які застосовуються для маніпуляцій із рядками. З використанням методів цього класу ми можемо визначити довжину рядка, виконати пошук підрядка, змінити регістр символів у рядку, порівняти два рядка, розділити рядки на підрядки і виконати низку інших дій. Після того як екземпляр класу String створено, він не може бути змінений — усі методи класу, які змінюють вміст рядка, повертають новий екземпляр цього класу. Клас String. Builder, який знаходиться у просторі імен System. Text, використовується для створення рядків, вміст яких може бути модифіковано. В Microsoft. NET перший символ рядка має нульовий індекс.
Властивості класу String 3 Клас String містить дві Imports System властивості: властивість Imports System. String Chars(Integer), що Module 1 повертає символ у зазначеній позиції, і Sub Main() властивість Length, що Dim Str As String повертає число символів Dim I As Integer у рядку. Str = “Економічна кібернетика" У прикладі показане While I <= Str. Length - 1 використання властивостей, у якому Console. Write. Line(Str. Chars(I)) буде виводитись вміст I += 1 рядка по одному символу. End While Отримали результат: End Sub End Module
Пошук підрядка у рядку Index. Of Imports System. String Module 1 Sub Main() Dim Str As String Dim Ch As Char Dim Chars As Char() = {“н", “е", “т"} Str = “Економічна кібернетика" Ch = “к" Console. Write. Line(Str. Index. Of(“кіб")) 'returns 11 Console. Write. Line(Str. Index. Of(Ch)) 'returns 1 Console. Write. Line(Str. Index. Of(Chars)) 'returns 16 Console. Write. Line(Str. Last. Index. Of(Ch)) 'returns 20 4 End Sub End Module Метод Index. Of(Char) використовується для пошуку першої копії підрядка у даному рядку. Він повертає початкову позицію підрядка, якщо його знайдено, або – 1 — у протилежному випадку. Метод Last. Index. Of() знаходить останній екземпляр підрядка у рядку Отримаємо результат:
Пошук підрядка у рядку In. Str Sub Main() Функція In. Str([Start. Pos, ] Dim Str As String 1, string 2[, compare]) Dim Ch As Char повертає позицію Dim Chars As Char() = {"н", "е", "т"} Dim start. Pos As Integer підрядка string 2 у рядку Str = "Економічна кібернетика" string 1. Вона повертає Ch = "к" початкову позицію start. Pos = 1 підрядка, якщо його Console. Write. Line(In. Str(start. Pos, Str, "кіб")) 'returns 12 знайдено, або – 1 — у Console. Write. Line(In. Str(start. Pos, Str, Ch)) 'returns 2 Console. Write. Line(In. Str(start. Pos, Str, Chars)) 'returns 17 протилежному випадку. Console. Write. Line(In. Str(start. Pos, Str, Ch)) 'returns 2 Параметр compare задає start. Pos = 12 метод порівняння text Console. Write. Line(In. Str(start. Pos, Str, Ch)) 'returns 12 або binary. Він дозволяє start. Pos = 13 врахувати регістр Console. Write. Line(In. Str(start. Pos, Str, Ch)) 'returns 21 символів!! End Sub 5 Проект Fun. In. Str
Порівняння рядків Рядки порівнюються для того, щоб визначити чи дорівнюють вони один одному. Якщо ні то один з них "менший" другий – "більший". Визначення більше – менше ґрунтуються на кодах символів ANSII. У випадку літер порядок кодів співпадає з алфавітним порядком – з тим виключенням, що великі літери менше малих (це визначено порядком кодів). Таким чином "ABC" менше "abc". Для порівняння двох рядків використовується один із перевантажених версій методу Compare. Цей метод повертає 0, якщо рядки ідентичні, -1, якщо перший рядок менше другого, або +1, якщо перший рядок більше другого. По замовчуванню порівняння рядків виконується з урахуванням регістру символів. Для того щоб регістр символів ігнорувався, третій опціональний параметр методу Compare повинен мати значення True. Наприклад, три наступних порівняння повертають різні результати: Str = “Microsoft. NET” Console. Write. Line(Str. Compare(Str. To. Upper, Str. To. Lower)) ‘ 1 Console. Write. Line(Str. Compare(Str. To. Upper, Str. To. Lower, True)) ‘ 0 6 Console. Write. Line(str. Compare(str. To. Lower, str. To. Upper)) ' -1
Перетворення рядка у масив 7 Для перетворення рядка у Imports System масив підрядків Imports System. String використовується метод Module 1 Split(Param. Array Char()). Sub Main() Потрібно вказати символ, який вважається символом, Dim Str As String що разділяє підрядки, — це Dim Words() As String може бути пробіл, кома і т. п. Dim I As Integer Наступний метод Str = "Алгоритмізація та програмування Join(String, String()) процедур обробки інформації" призначено для об’єднання Words = Str. Split(" ") елементів масиву у рядок. For I = 0 To Words. Get. Upper. Bound(0) Console. Write. Line(I & " : " & Words(I)) Next End Sub End Module
Об’єднання масиву у рядок Imports System. String Module 1 Sub Main() Dim Str, new. Str As String Dim Words() As String Dim I As Integer Str = "Алгоритмізація та програмування процедур обробки інформації" Console. Write. Line(Str) Words = Str. Split(" ") For I = 0 To Words. Get. Upper. Bound(0) Console. Write. Line(I & " : " & Words(I)) Next 8 Array. Reverse(Words) ‘ reverse масиву Words new. Str = Join(Words, " ")) ‘ об’єднали рядок Console. Write. Line(new. Str) new. Str = new. Str. To. Upper ‘ верхній регістр Console. Write. Line(new. Str) new. Str = new. Str. To. Lower ‘ нижній регістр Console. Write. Line(new. Str) End Sub End Module
Заміна символів/фраз та конкатенація Dim Str, new. Str As String Dim Str 1, Str 2, Str 3 As String Str = "Спеціальність економічна кібернетика" Console. Write. Line(Str) new. Str = Str. Replace(" ", "_") ' замінили пробіл на _ Console. Write. Line(new. Str) Str = new. Str. Replace("Спеціальність", "Фах") ' замінили спец на фах Console. Write. Line(Str) 9 Str 1 = "Університет " Str 2 = "споживчої " Str 3 = "кооперації" Str = Str 1. Concat(Str 1, Str 2, Str 3) ' конкатенація рядків Console. Write. Line(Str) new. Str = Str 1 & Str 2 & Str 3 ' можна і так Console. Write. Line(new. Str) Для заміни усіх екземплярів вказаного символа на інший символ використовуємо метод Replace(Char, Char) або Replace(String, String) Для об’єднання однієї або декількох рядків у один рядок використовується один із перевантажених методів Concat.
Доповнення та видалення символів Методи Pad. Left(Integer, Char) и Pad. Right (Integer, Char) використовуються для заповнення рядка ліворуч або праворуч вказаною кількістю символів. Методи Trim. Start(Char()) и Trim. End(Char()) призначені для видалення заданої послідовності символів з початку або кінця рядка. Метод Trim() використовується для видалення вказаної послідовності символів як із початку, так і з кінця рядка. Для видалення заданої кількості символів із рядка з вказаної позиції призначено метод Remove(Integer, Integer). Щоб вставити рядок у вказану позицію іншого рядка, використовується метод Insert(Integer, String). Приклад застосування вказаних методів – на наступному слайді. 10
11 Str = "Економічна кібернетика" Console. Write. Line("застосували Trim. End " & Str) Console. Write. Line("Str= " & Str) Console. Write. Line("Str 1= " & Str 1) Str = Str. Pad. Left(Str. Length + 7, "*") Str 1 = Str 1. Trim("*") Console. Write. Line("застосували Pad. Left " & Str) Console. Write. Line("застосували Trim " & Str 1) Str = Str. Pad. Right(Str. Length + 7, "*") Console. Write. Line("застосували Str = Str. Remove(Str. Index. Of("ічна"), "ічна". Length) Pad. Right " & Str) Console. Write. Line("застосували Str 1 = Str Remove " & Str) Str = Str. Trim. Start("*") Console. Write. Line("застосували Str = Str. Insert(Str. Index. Of("кіб") - 1, "ічна") Trim. Start " & Str) Console. Write. Line("застосували Str = Str. Trim. End("*") Insert " & Str)
Вирізання підрядка із рядка Для вирізання підрядка із рядка застосовується метод Substring(Start. Index, Length) або функція Mid(String, Start, Length) Dim Str, Str 1 As String Str = "Економічна кібернетика“ Str 1 = Str. Substring(11, 5) Str 1 = Mid(Str, 12, 5) У обох випадках значення Str 1 буде дорівнювати “кібер” 12
Форматування типу Decimal 13 Imports System Module 1 Sub Main() Dim Formats() As String = {"D", "D 4", "D 6"} Dim I As Integer Dim Value As Integer = 123 For I = 0 To Formats. Get. Upper. Bound(0) Console. Write. Line("Value: {0: " & Formats(I) & "}", Value) Next End Sub End Module Це форматування вказується специфікатором D (або d). Також можна вказати точність виведення — мінімальну кількість цифр.
Форматування типу Exponential 14 Використовується формат Imports System (який також називається Module 1 «інженерним» форматом; Sub Main() специфікатор E або e) для перетворення значень у Dim Formats() As String = {"E", "E 2", експоненціальне "E 3"} представлення. Також Dim I As Integer можемо вказати точність перетворення — кількість Dim Value As Integer = 123456 For I = 0 To Formats. Get. Upper. Bound(0) символів після десяткової точки. Console. Write. Line("Value: {0: " & Formats(I) & "}", Value) Next End Sub End Module
Форматування типу Fixed-point 15 Imports System Module 1 Sub Main() Dim Formats() As String = {"F", "F 3", "F 5"} Dim I As Integer Dim Value As Integer = 123 For I = 0 To Formats. Get. Upper. Bound(0) Console. Write. Line("Value: {0: " & Formats(I) & "}", Value) Next End Sub Форматування чисел із фіксованою точкою (специфікатор F або f) використовується для перетворення десяткових чисел шляхом додавання вказаної кількості нулів (по замовчуванню два) після десяткової точки.
Форматування типу Number 16 Imports System Module 1 Sub Main() Dim Formats() As String = {"N", "N 3", "N 5"} Dim I As Integer Dim Value As Integer = 123456 For I = 0 To Formats. Get. Upper. Bound(0) Console. Write. Line("Value: {0: " & Formats(I) & "}", Value) Next End Sub End Module Цей формат (специфікатор N або n) використовується для перетворення значень у форму [-]d, ddd. dd.
Форматування типу Percent 17 Imports System Module 1 Sub Main() Dim Formats() As String = {"P", "P 3", "P 5"} Dim I As Integer Dim Value As Decimal = 0. 12345 For I = 0 To Formats. Get. Upper. Bound(0) Console. Write. Line("Value: {0: " & Formats(I) & "}", Value) Next End Sub End Module Використовують цей формат (специфікатор P або p) для перетворення числового значення у вигляді процента.
Форматування типу Picture Numeric 18 Imports System На попередніх слайдах використовувалися Module 1 шаблони з різними Sub Main() специфікаторами Dim Formats() As String = {" {0: 0. ##}", " форматів. Окрім простих {0: ##. ###}", "{0: %#. ##}", "{0: ##. ##E+0}", шаблонів можна "{0: {{##. ##}}}", "{0: ###. ###}"} використовувати і більш Dim I As Integer комплексні. Деякі з таких шаблонів Dim Value As Double = 1. 23456 продемонстровано у For I = 0 To Formats. Get. Upper. Bound(0) прикладі: Console. Write. Line("Value: " & Formats(I), Value) Next End Sub End Module
АППОИ_9_Рядки у VB.NET (String).ppt