Ряды String

Содержание

Слайд 2

Загальні положення

Клас System.String вміщує методи, які застосовуються для маніпуляцій із рядками. З

Загальні положення Клас System.String вміщує методи, які застосовуються для маніпуляцій із рядками.
використанням методів цього класу ми можемо визначити довжину рядка, виконати пошук підрядка, змінити регістр символів у рядку, порівняти два рядка, розділити рядки на підрядки і виконати низку інших дій.
Після того як екземпляр класу String створено, він не може бути змінений — усі методи класу, які змінюють вміст рядка, повертають новий екземпляр цього класу. Клас StringBuilder, який знаходиться у просторі імен System.Text, використовується для створення рядків, вміст яких може бути модифіковано. В Microsoft.NET перший символ рядка має нульовий індекс.

Слайд 3

Властивості класу String

Imports System
Imports System.String
Module Module1  
Sub Main()

Властивості класу String Imports System Imports System.String Module Module1 Sub Main() Dim

Dim Str As String  
Dim I As Integer
Str = “Економічна кібернетика"
While I <= Str.Length - 1
Console.WriteLine(Str.Chars(I))
I += 1
End While
End Sub
End Module

Клас String містить дві властивості: властивість Chars(Integer), що повертає символ у зазначеній позиції, і властивість Length, що повертає число символів у рядку.
У прикладі показане використання властивостей, у якому буде виводитись вміст рядка по одному символу.
Отримали результат:

Слайд 4

Пошук підрядка у рядку IndexOf

Imports System
Imports System.String
Module Module1  
Sub Main()
Dim

Пошук підрядка у рядку IndexOf Imports System Imports System.String Module Module1 Sub
Str As String
Dim Ch As Char
Dim Chars As Char() = {“н", “е", “т"}
Str = “Економічна кібернетика"
Ch = “к"
Console.WriteLine(Str.IndexOf(“кіб")) 'returns 11
Console.WriteLine(Str.IndexOf(Ch)) 'returns 1
Console.WriteLine(Str.IndexOf(Chars)) 'returns 16
Console.WriteLine(Str.LastIndexOf(Ch)) 'returns20
End Sub
End Module

Метод IndexOf(Char) використовується для пошуку першої копії підрядка у даному рядку. Він повертає початкову позицію підрядка, якщо його знайдено, або –1 — у протилежному випадку.
Метод LastIndexOf() знаходить останній екземпляр підрядка у рядку
Отримаємо результат:

Слайд 5

Пошук підрядка у рядку InStr

Sub Main()
Dim Str As String
Dim Ch

Пошук підрядка у рядку InStr Sub Main() Dim Str As String Dim
As Char
Dim Chars As Char() = {"н", "е", "т"}
Dim startPos As Integer
Str = "Економічна кібернетика"
Ch = "к"
startPos = 1
Console.WriteLine(InStr(startPos, Str, "кіб")) 'returns 12
Console.WriteLine(InStr(startPos, Str, Ch)) 'returns 2
Console.WriteLine(InStr(startPos, Str, Chars)) 'returns 17
Console.WriteLine(InStr(startPos, Str, Ch)) 'returns 2
startPos = 12
Console.WriteLine(InStr(startPos, Str, Ch)) 'returns 12
startPos = 13
Console.WriteLine(InStr(startPos, Str, Ch)) 'returns 21
End Sub

Функція InStr([StartPos,]
String1, string2[, compare]) повертає позицію підрядка string2 у рядку string1. Вона повертає початкову позицію підрядка, якщо його знайдено, або –1 — у протилежному випадку.
Параметр compare задає метод порівняння text або binary. Він дозволяє врахувати регістр символів!!
Проект
FunInStr

Слайд 6

Порівняння рядків

Рядки порівнюються для того, щоб визначити чи дорівнюють вони  один одному.

Порівняння рядків Рядки порівнюються для того, щоб визначити чи дорівнюють вони один
Якщо ні то один з них "менший" другий – "більший". Визначення більше – менше  ґрунтуються на кодах символів ANSII.У випадку  літер порядок кодів співпадає з алфавітним порядком – з тим виключенням, що великі літери менше малих (це визначено порядком кодів). Таким чином "ABC" менше  "abc" .
Для порівняння двох рядків використовується один із перевантажених версій методу Compare. Цей метод повертає 0, якщо рядки ідентичні, -1, якщо перший рядок менше другого, або +1, якщо перший рядок більше другого. По замовчуванню порівняння рядків виконується з урахуванням регістру символів. Для того щоб регістр символів ігнорувався, третій опціональний параметр методу Compare повинен мати значення True.
Наприклад, три наступних порівняння повертають різні результати:
Str = “Microsoft .NET”
Console.WriteLine(Str.Compare(Str.ToUpper, Str.ToLower)) ‘ 1
Console.WriteLine(Str.Compare(Str.ToUpper, Str.ToLower, True)) ‘ 0
Console.WriteLine(str.Compare(str.ToLower, str.ToUpper)) ' -1

Слайд 7

Перетворення рядка у масив

Imports System
Imports System.String
Module Module1
Sub Main()
Dim Str As

Перетворення рядка у масив Imports System Imports System.String Module Module1 Sub Main()
String
Dim Words() As String
Dim I As Integer
Str = "Алгоритмізація та програмування процедур обробки інформації"
Words = Str.Split(" ")
For I = 0 To Words.GetUpperBound(0)
Console.WriteLine(I & " : " & Words(I))
Next
End Sub
End Module

Для перетворення рядка у масив підрядків використовується метод Split(ParamArray Char()). Потрібно вказати символ, який вважається символом, що разділяє підрядки, — це може бути пробіл, кома і т.п.
Наступний метод Join(String, String()) призначено для об’єднання елементів масиву у рядок.

Слайд 8

Об’єднання масиву у рядок

Imports System
Imports System.String
Module Module1
Sub Main()
Dim Str, newStr

Об’єднання масиву у рядок Imports System Imports System.String Module Module1 Sub Main()
As String
Dim Words() As String
Dim I As Integer
Str = "Алгоритмізація та програмування процедур обробки інформації"
Console.WriteLine(Str)
Words = Str.Split(" ")
For I = 0 To Words.GetUpperBound(0)
Console.WriteLine(I & " : " & Words(I))
Next

Array.Reverse(Words) ‘ reverse масиву Words
newStr = Join(Words, Join(Words, " ")) ‘ об’єднали рядок
Console.WriteLine(newStr)
newStr = newStr.ToUpper ‘ верхній регістр
Console.WriteLine(newStr)
newStr = newStr.ToLower ‘ нижній регістр
Console.WriteLine(newStr)
End Sub
End Module

Слайд 9

Заміна символів/фраз та конкатенація

Dim Str, newStr As String
Dim Str1, Str2, Str3 As

Заміна символів/фраз та конкатенація Dim Str, newStr As String Dim Str1, Str2,
String
Str = "Спеціальність економічна кібернетика"
Console.WriteLine(Str)
newStr = Str.Replace(" ", "_") ' замінили пробіл на _
Console.WriteLine(newStr)
Str = newStr.Replace("Спеціальність", "Фах") ' замінили спец на фах
Console.WriteLine(Str)
Str1 = "Університет "
Str2 = "споживчої "
Str3 = "кооперації"
Str = Str1.Concat(Str1, Str2, Str3) ' конкатенація рядків
Console.WriteLine(Str)
newStr = Str1 & Str2 & Str3 ' можна і так
Console.WriteLine(newStr)

Для заміни усіх екземплярів вказаного символа на інший символ використовуємо метод Replace(Char, Char) або Replace(String, String)
Для об’єднання однієї або декількох рядків у один рядок використовується один із перевантажених методів Concat.

Слайд 10

Доповнення та видалення символів

Методи PadLeft(Integer, Char) и PadRight (Integer, Char) використовуються для

Доповнення та видалення символів Методи PadLeft(Integer, Char) и PadRight (Integer, Char) використовуються
заповнення рядка ліворуч або праворуч вказаною кількістю символів.
Методи TrimStart(Char()) и TrimEnd(Char()) призначені для видалення заданої послідовності символів з початку або кінця рядка. Метод Trim() використовується для видалення вказаної послідовності символів як із початку, так і з кінця рядка.
Для видалення заданої кількості символів із рядка з вказаної позиції призначено метод Remove(Integer, Integer).
Щоб вставити рядок у вказану позицію іншого рядка, використовується метод Insert(Integer, String).
Приклад застосування вказаних методів – на наступному слайді.

Слайд 11

Str = "Економічна кібернетика"
Console.WriteLine("Str= " & Str)
Str = Str.PadLeft(Str.Length

Str = "Економічна кібернетика" Console.WriteLine("Str= " & Str) Str = Str.PadLeft(Str.Length +
+ 7, "*")
Console.WriteLine("застосували PadLeft " & Str)
Str = Str.PadRight(Str.Length + 7, "*")
Console.WriteLine("застосували PadRight " & Str)
Str1 = Str
Str = Str.TrimStart("*")
Console.WriteLine("застосували TrimStart " & Str)
Str = Str.TrimEnd("*")

Console.WriteLine("застосували TrimEnd " & Str)
Console.WriteLine("Str1= " & Str1)
Str1 = Str1.Trim("*")
Console.WriteLine("застосували Trim " & Str1)
Str = Str.Remove(Str.IndexOf("ічна"), "ічна".Length)
Console.WriteLine("застосували Remove " & Str)
Str = Str.Insert(Str.IndexOf("кіб") - 1, "ічна")
Console.WriteLine("застосували Insert " & Str)

Слайд 12

Вирізання підрядка із рядка

Для вирізання підрядка із рядка застосовується метод Substring(StartIndex, Length)

Вирізання підрядка із рядка Для вирізання підрядка із рядка застосовується метод Substring(StartIndex,
або функція Mid(String, Start, Length)
Dim Str, Str1 As String
Str = "Економічна кібернетика“
Str1 = Str.Substring(11, 5)
Str1 = Mid(Str, 12, 5)
У обох випадках значення Str1 буде дорівнювати “кібер”

Слайд 13

Форматування типу Decimal

Imports System
Module Module1  
Sub Main()
Dim Formats() As

Форматування типу Decimal Imports System Module Module1 Sub Main() Dim Formats() As
String = {"D", "D4", "D6"}
Dim I As Integer
Dim Value As Integer = 123
For I = 0 To Formats.GetUpperBound(0)
Console.WriteLine("Value: {0:" & Formats(I) & "}", Value)
Next  
End Sub
End Module

Це форматування вказується специфікатором D (або d). Також можна вказати точність виведення — мінімальну кількість цифр.

Слайд 14

Форматування типу Exponential

Imports System
Module Module1  
Sub Main()
Dim Formats() As String

Форматування типу Exponential Imports System Module Module1 Sub Main() Dim Formats() As
= {"E", "E2", "E3"}
Dim I As Integer
Dim Value As Integer = 123456
For I = 0 To Formats.GetUpperBound(0)
Console.WriteLine("Value:  {0:" & Formats(I) & "}", Value)
Next
End Sub
End Module

Використовується формат (який також називається «інженерним» форматом; специфікатор E або e) для перетворення значень у експоненціальне представлення. Також можемо вказати точність перетворення — кількість символів після десяткової точки.

Слайд 15

Форматування типу Fixed-point

Imports System
Module Module1  
Sub Main()
Dim Formats() As

Форматування типу Fixed-point Imports System Module Module1 Sub Main() Dim Formats() As
String = {"F", "F3", "F5"}
Dim I As Integer
Dim Value As Integer = 123
For I = 0 To Formats.GetUpperBound(0)
Console.WriteLine("Value:  {0:" & Formats(I) & "}", Value)
Next
End Sub

Форматування чисел із фіксованою точкою (специфікатор F або f) використовується для перетворення десяткових чисел шляхом додавання вказаної кількості нулів (по замовчуванню два) після десяткової точки.

Слайд 16

Форматування типу Number

Imports System
Module Module1  
Sub Main()
Dim Formats() As

Форматування типу Number Imports System Module Module1 Sub Main() Dim Formats() As
String = {"N", "N3", "N5"}
Dim I As Integer
Dim Value As Integer = 123456
For I = 0 To Formats.GetUpperBound(0)
Console.WriteLine("Value:  {0:" & Formats(I) & "}", Value)
Next  
End Sub
End Module

Цей формат (специфікатор N або n) використовується для перетворення значень у форму
[-]d,ddd,ddd.dd.

Слайд 17

Форматування типу Percent

Imports System
Module Module1  
Sub Main()
Dim Formats() As

Форматування типу Percent Imports System Module Module1 Sub Main() Dim Formats() As
String = {"P", "P3", "P5"}
Dim I As Integer
Dim Value As Decimal = 0.12345
For I = 0 To Formats.GetUpperBound(0)
Console.WriteLine("Value:  {0:" & Formats(I) & "}", Value)
Next  
End Sub
End Module

Використовують цей формат (специфікатор P або p) для перетворення числового значення у вигляді процента.